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

时间:2016-01-23 20:35:22

标签: javascript parse-platform cloud-code

我在解析云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不允许我们在查询中检查equalTonotEqualTo是否有相同的指针。还有其他办法吗?

1 个答案:

答案 0 :(得分:1)

尝试构建指针:

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