我在解析云js时遇到了一些问题。
保存ParseMessage对象后,我想检查其他类(MessageTracker)中的3指针(产品,发件人和收件人)。使用base 3查询没有问题,但是当我调用insideQuery.notEqualTo("sender", result.get("owner"));
时出现错误:
102:指针字段发送方需要指针值
这个“所有者”也是一个指向用户类的指针,就像其他人一样(发件人和收件人),但这次解析云发送错误。
(在控制台上我看到,对象id是有效值,所以我有正确的对象)
Parse.Cloud.afterSave("ParseMessage", function(request) {
var message = request.object;
var product = message.get("product");
var sender = message.get("sender");
var recipient = message.get("recipient");
var query = new Parse.Query("Product");
query.get(product.id, {
success: function(result) {
console.error("prod owner: " + result.get("owner").id + " sender: " + sender.id + " reciever: " + recipient.id);
var insideQuery = new Parse.Query("MessageTracker");
insideQuery.equalTo("product", product);
insideQuery.equalTo("sender", sender);
insideQuery.equalTo("recipient", recipient);
insideQuery.notEqualTo("sender", result.get("owner"));
insideQuery.find({
success: function(results) {
console.error("count: " + results.length);
},
error: function(error) {
console.error("Got an error " + error.code + " : " + error.message);
}
});
},
error: function(object, error) {
}
});
});
有什么好建议吗?
更新
我可能发现了这个问题。 Parse不允许我们在查询中检查equalTo
和notEqualTo
是否有相同的指针。还有其他办法吗?
答案 0 :(得分:1)
尝试构建指针:
var ownerPointer = {
__type: 'Pointer',
className: <className>,
objectId: result.get("owner").id
};
insideQuery.notEqualTo("sender", ownerPointer);