ParseCloud 错误 102,无法通过指针查询

ParseCloud error 102, cannot query through pointers

本文关键字:指针 查询 错误 ParseCloud      更新时间:2023-09-26

我对解析云js有一些问题。

保存 ParseMessage 对象后,我想检查其他类(消息跟踪器)中的 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) {
      }
    }); 
});

有什么好的建议吗?

更新
我可能发现了问题所在。解析不允许我们在查询中检查同一指针equalTonotEqualTo。还有其他方法可以做到这一点吗?

尝试构建指针:

var ownerPointer = {
    __type: 'Pointer',
    className: <className>,
    objectId: result.get("owner").id
};
insideQuery.notEqualTo("sender", ownerPointer);