【发布时间】:2018-03-14 22:24:05
【问题描述】:
我有一个移动应用程序,它通过递增数字字段来更新 Parse 对象。对于几个用户,更新返回“找不到对象”错误结果。
查看服务器日志时,我看到对象的 beforeSave 成功,然后立即显示“未找到对象”错误。
[32minfo[39m: beforeSave 为用户 Kd06Glks3q 触发了时隙: 输入:{...(截断) 结果:{"object":{"current":{"__op":"Increment","amount":1},"organizationId":"5KK3RckkmD","available":true}} className=Timeslot, triggerType=beforeSave , 用户=Kd06Glks3q [31merror[39m:错误生成响应。 ParseError { 代码:101,消息:'找不到对象。' } 代码=101,消息=找不到对象。 [31merror[39m:找不到对象。代码=101,消息=找不到对象。
这似乎只发生在某些 Parse 用户中(目前为 2 个)。执行相同操作的其他用户成功,并且日志显示 afterSave 在 beforeSave 之后立即完成。我已将 VERBOSE 环境变量设置为 1,但没有看到任何其他数据。
我正在运行 Parse Server 2.7.4
有人遇到过此类问题吗?
【问题讨论】:
-
我唯一一次看到错误 101 是 Parse.Query.get(),这表明具有传入对象 id 的对象不存在,或者至少用户不可获取.他们是否保存了一个以某种方式被删除的对象?或者他们是否保存了他们没有查找/获取权限的对象?
-
Timeslot 对象存在(未删除)并且用户首先获取它,因此似乎具有适当的访问权限。在 beforeSave 本身中有一个相关对象的提取,但是有日志消息让我知道提取成功完成。实际上,日志中一直显示日志消息,直到 beforeSave 中的 response.success() 调用,上面的日志表明 beforeSave 执行成功。
标签: parse-server parse-cloud-code