Ida*_*dan 10 javascript parse-platform parse-cloud-code
我正在尝试使用云功能找到我之前没有连接的用户.我正在使用的桌子很少:
代码:
Parse.Cloud.define("findFreshUser", function(request, response) {
Parse.Cloud.useMasterKey(); // For reading all the table //
var user = Parse.User.current();
// Get all possible users we already connected to //
var connectQuery = new Parse.Query("Connected");
connectQuery.include('userId2');
connectQuery.equalTo("userId", Parse.User.current().id);
// Get all users with availability of '0' //
var availableQuery = new Parse.Query("Available");
availableQuery.notEqualTo("counter", 0);
var freshUserQuery = new Parse.Query(Parse.User);
freshUserQuery.doesNotMatchKeyInQuery("objectId", "userId2", connectQuery); // We haven't connected before - THIS DOEN'T WORK !!! //
freshUserQuery.doesNotMatchKeyInQuery("objectId", "userObjectId", availableQuery); // We won't use '0' availability users - THIS WORKS //
freshUserQuery.equalTo("hasLight", false); // user must not have a light //
freshUserQuery.descending("updatedAt");
freshUserQuery.limit(1); // We need only 1 user //
freshUserQuery.find({
success: function(results) {
if (results.length>0){
console.log("Found the user "+ results[0].id);
response.success(results[0].id);
}else{
response.error("No user found");
}
},
error: function() {
response.error("No user found");
}
});
});
Run Code Online (Sandbox Code Playgroud)
出于某种原因,当使用2个doesNotMatchKeyInQuery语句时,CloudCode完全忽略connectQuery(所有其他语句都没问题):
仅使用时
freshUserQuery.doesNotMatchKeyInQuery("objectId", "userId2", connectQuery);
Run Code Online (Sandbox Code Playgroud)
并评论出来
freshUserQuery.doesNotMatchKeyInQuery("objectId", "userObjectId", availableQuery);
Run Code Online (Sandbox Code Playgroud)
它确实有效.所以我认为这与同时使用它们有关,它们可能相互冲突.我需要做什么才能同时申请?
感觉这是一些解析问题,但我对CloudCode很新,所以这可能是我做得不对的.
注意:请注意我甚至不比较用户对象本身而是它的id(这是隔离问题的一部分).意思是,我知道我可以使代码和数据库更好.
Tou*_*eur -2
您必须使用 Promise 来实现此类查询:blog.parse.com/learn/engineering/whats-so-great-about-javascript-promises/
| 归档时间: |
|
| 查看次数: |
117 次 |
| 最近记录: |