Javascript 解析云代码查询不返回任何内容
我试图在添加新行时,在解析时使用云代码删除预先存在的行 这是我编写的当前代码:Javascript 解析云代码查询不返回任何内容,javascript,parse-platform,Javascript,Parse Platform,我试图在添加新行时,在解析时使用云代码删除预先存在的行 这是我编写的当前代码: var queryGoals = new Parse.Query(Parse.Object.extend('Goal')); queryGoals.include('user'); queryGoals.equalTo('user', request.user); queryGoals.find({ success: function(results) { console.warn('Que
var queryGoals = new Parse.Query(Parse.Object.extend('Goal'));
queryGoals.include('user');
queryGoals.equalTo('user', request.user);
queryGoals.find({
success: function(results) {
console.warn('Query Returned: ' + results.length);
Parse.Object.destroyAll(results);
},
error: function(user, error) {
console.warn('Error ' + error.code + ': ' + error.message);
}
});
控制台从不显示返回的记录数(我假设没有),也不显示任何错误。当运行客户端时,相同的代码(当然,对于用户筛选器,使用Parse.User.current()
)返回预期的行数
当云代码执行查询时,查询的操作是否有所不同,或者我是否忽略了什么?我用Parse提交了一份错误报告,最后发现函数在执行success函数之前就结束了,因为它是异步运行的。我添加了适当的promise结构以使其按预期工作():
我不相信您可以将对象直接发送到云代码函数,您必须先调出对象的对象id,然后从云代码中的id创建一个对象并对其进行查询。@Jacob从
请求中获取用户是可以的。user
@Cameron您确定调用了此云函数吗?您可以从云代码日志中进行检查。在代码中放入一些console.log
。删除equalTo
条件以检查它是否返回所有目标,然后记录用户并添加equalTo
。请尝试调试您的代码。@KNSN这将适用于当前用户,是的。如果没有任何内容与您的查询匹配,则成功块将被激发为空数组,因此您至少可以在服务器端控制台中获得“query Returned:0”。谢谢您的回复。Parse的日志显示正在调用的函数。为了简洁起见,我在问题的代码段中省略了它,但是我确实在queryGoals.find({…})
前面有一行用于登录到控制台,它确实会显示出来(尽管是在调用每个云函数的日志条目之后)。我已经删除了其他查询过滤器/约束,但是删除用户约束似乎没有任何效果。
queryGoals.find(
{
useMasterKey: true,
success: function(results)
{
Parse.Object.destroyAll(results);
},
error: function(user, error)
{
console.warn('Error ' + error.code + ': ' + error.message);
}
}).then(
function(object)
{
// Do Post-Query Stuff Here
response.success();
},
function(error)
{
console.warn('Error ' + error.code + ': ' + error.message);
}
);