JSSDK:leancloud-storage 3.13.2
之前使用 increment 方法,可以更新 object 类型字段中的一个属性,例如
Issue.increment('readProgress.userId', 1);
readProgress 是一个 object 类型的字段,userA 是一个 Number 属性,默认是 -1。
readProgress
userA
但是最近发现会失败,提示如下错误:
request paylaod 如下:
你好,报错 403 是权限问题,建议登录控制台检查一下 Issue 这个表的读写权限设置是否有改动。
错误码详解: https://leancloud.cn/docs/error_code.html#hash1392106
这个问题我查明了,应该是leancloud修改了这种修改对象属性的操作的类别,将其定义为了 add_fields。我在对应 Class 的权限里将 add_fields 设置为登录用户,就不会再提示错误了。
add_fields
但是我坚持认为,这是 update,不是 add_fields。强烈建议将其恢复为 update。
update
Increment 操作对应的是 update 权限,不是 add_fields。我这边测试不是您说的现象。
是否有可能是您测试时触发了 write:数据创建者(Owner)这个权限。
write:数据创建者(Owner)
综上,我还是认为是lc的后台发生了变化。
可能与最近后端的一个改动有关。之前 Issue.increment('readProgress.userId', 1); 需要 readProgress 已经存在,否则会报错,现在如果 readProgress 不存在,会自动创建(这个自动创建就属于添加字段 add_fields 了,也就需要 add_fields 权限了)。
感谢反馈问题,我们会进一步调查。