parse afterFind, added object to response 是client中的一个指针

Parse afterFind, added object to response is a pointer in client

我正在使用带有 Parse 的 afterFind 云函数,它只是执行一个额外的查询并在响应中设置一个额外的对象。我希望在客户端中完全检索到同一个对象,但它实际上是一个指针或其他东西,因为我需要在访问其数据之前对其调用 fetchIfNeeded

Parse.Cloud.afterFind("PublicationImage", function(request, response) {

    ...

    votesQuery.equalTo("author", user)
    votesQuery.containedIn("target", publicationImagesIds);
    votesQuery.find()
      .then(function(votes) {
        votes.forEach(function(vote) {
          voteTarget = vote.get("target");
          for (var i = 0; i < publicationImages.length; i++) {
            if (publicationImages[i].id == voteTarget.id) {
              publicationImages[i].set("userVote", vote); <-- Here I add an obj
            }
          }
        });
        response.success(publicationImages);
      })

    ...

});

我刚刚发现,出于某种原因,有一个问题迫使您将对象转换为 Json 或在将其返回给客户端之前对其进行编码,否则它将被视为和接收一个指针。

解决方法是:

publicationImages[i].set("userVote", Parse._encode(vote));

阅读更多Here