这是我想要做的事情
Parse.Cloud.beforeSave("Users", function(request, response) {
Parse.Cloud.useMasterKey();
var user = request.object;
var query = new Parse.Query(Parse.Installation);
query.equalTo("installationId", user.get("installationId"));
query.find({
success: function(results) {
if(results !== undefined ) {
console.log("beforeSave Users:" + results + " User Exists For :" +user.get("installationId"));
response.error();
}
else{
console.log("beforeSave Users:" + results + " Creating User For :" +user.get("installationId"));
response.success();
}
},
error: function(error) {
// on error, log it and return an empty array
console.log("beforeSave Users Error :" + error.message);
}
});
});
它工作正常,但我得到了结果
I2014-06-30T01:51:02.578Z] v99:为用户触发了before_save 输入:{“original”:null,“update”:{“installationId”:“ef0317be-e634-4f64-a482-810c9839117c”,“userName”:“Test”,“userPhoneNumber”:“0123456789”}} 结果:验证失败
为什么验证失败?如果我删除Parse.Cloud.useMasterKey();
,则此验证错误消失,但我的功能停止工作。
有人可以解释一下吗?为什么此验证失败错误?
即使没有找到结果,我得到一个空数组,我想要一个成功的结果。问题是我试图了解添加或删除Parse.Cloud.useMasterKey();
如何在这种情况下产生影响。
它使我的代码工作,但为什么我得到结果:验证失败。
答案 0 :(得分:0)
您success
处理程序中的逻辑不正确。
如果未找到匹配项,则results
参数将为空数组。你应该检查长度为0。
鉴于您只希望获得单个结果,您应该转而使用first()
,在这种情况下,您需要检查undefined
。