如何从指针访问对象

How to access object from pointer?

本文关键字:访问 对象 指针      更新时间:2023-09-26

我有一个应用程序,每当用户的帖子上有新的评论时,就会通知用户。我使用解析作为后端。

我有以下数据结构

注释表

objectId

注释

评论后

后表

objectId

由创建

我已经在名为User的安装表上设置了一个指针(指向PFUser)。

我尝试查询评论文章>张贴>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();
            }
        }); 
    });
});    

如果它对你有效,请告诉我。