如何从指针访问对象?

How to access object from pointer?

我有一个应用程序,只要用户的 post 有新评论,用户就会收到通知。我正在使用解析作为后端。

我有以下数据结构

评论table

objectId

Comment

commentedPost

Post table

objectId

createdBy

并且我已经在安装 table 时设置了一个指针(指向 PFUser),称为 User。

我尝试在安装时使用用户查询评论Post>Post>createdBy。

我试过下面的代码:

Parse.Cloud.afterSave('Comments', function(request) {
commentQuery.include("commentedPost");
var post = request.object.get("commentedPost");
var poster = post.get("createdBy");

var query = new Parse.Query(Parse.Installation);
query.equalTo('jooveUser', poster);

Parse.Push.send({
    where: query, // Set our Installation query.
    data: {
        alert: message = 'hahahahahaha'
    }
}, {
    success: function() {
        response.success();
    },
    error: function(err) {
        response.error();
    }
});
});

但是,它不执行任何操作或发送任何通知。我做错了什么?我怎样才能达到我想要的?

由于您试图在指针 (post) 内获取指针 (user),因此您需要先获取 post 指针。对您的代码进行小修改(特别注意代码的 fetch().then() 部分):

Parse.Cloud.afterSave('Comments', function(request) {

    // read pointer async
    request.object.get("commentedPost").fetch().then(function(post){

        // 'post' is the commentedPost object here
        var poster = post.get('createdBy');

        // proceed with the rest of your code - unchanged
        var query = new Parse.Query(Parse.Installation);
        query.equalTo('jooveUser', poster);

        Parse.Push.send({
            where: query, // Set our Installation query.
            data: {
                alert: message = 'hahahahahaha'
            }
        }, {
            success: function() {
                response.success();
            },
            error: function(err) {
                response.error();
            }
        }); 
    });

});    

让我知道它是否适合您。