我正在尝试查询 Parse User Class,但没有得到任何结果。User 类有一个标记为“phone”的列,我正在传递一个字典数组,其中每个字典都有一个键“phone_numbers”,它对应于一个电话号码数组。我正在尝试确定我表中的用户是否有这些电话号码之一。我在运行代码时没有遇到任何错误,但我的表中确实存在一个具有匹配电话号码的用户。我究竟做错了什么?
Parse.Cloud.define("hasApp", function(request, response) {
var dict = request.params.contacts;
var num = 0;
var found = 0;
var error = 0;
var phoneNumbers = "";
for (var i = 0; i < dict.length; i++){
var result = dict[i].phone_numbers;
num += result.length;
for (var j = 0; j < result.length; j++){
phoneNumbers += result[j] + ", ";
var query = new Parse.Query(Parse.User);
query.equalTo("phone", result[j]);
query.find({
success: function(results) {
found = 1;
},
error: function() {
error = 1;
}
});
}
}
response.success("hasApp " + dict.length + " numbers " + num + " found " + found + " error " + error + " phoneNumbers " + phoneNumbers);
});
我打电话给我的回应是
hasApp 337 numbers 352 found 0 error 0 phoneNumbers "list of phone numbers"
其中一些电话号码出现在我的用户类中。据我所知,我没有收到任何错误,但我也没有成功查询用户表
更新
搬家后
response.success("hasApp " + dict.length + " numbers " + num + " found " + found + " error " + error + " phoneNumbers " + phoneNumbers);
到成功块的主体,我收到以下错误,因为我只允许每个云函数调用 response.success 一次。
Error Domain=Parse Code=141 "The operation couldn’t be completed. (Parse error 141.)"
UserInfo=0x14d035e0 {code=141, error=Error: Can't call success/error multiple times
at Object.success (<anonymous>:99:13)
at query.find.success (main.js:44:12)
at Parse.js:2:5786
at r (Parse.js:2:4981)
at Parse.js:2:4531
at Array.forEach (native)
at Object.w.each.w.forEach [as _arrayEach] (Parse.js:1:666)
at n.extend.resolve (Parse.js:2:4482)
at r (Parse.js:2:5117)
at Parse.js:2:4531}
这是否意味着我一次只能验证一个电话号码?所以我不能传递一个电话号码数组并获取与这些电话号码相对应的 PFUser 对象(如果它们存在的话)?
我知道我对 Parse.User 的内部查询与我的“hasApp”调用同步发生,那么有没有办法异步查询 Parse.User?这样我可以在检查所有电话号码后回复客户吗?