如何从指针访问对象?

时间:2015-06-25 04:42:50

标签: javascript ios pointers parse-platform cloud-code

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

我有以下数据结构

评论表

  

的ObjectID

     

注释

     

commentedPost

发布表

  

的ObjectID

     

createdBy

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

我尝试在安装时查询commentedPost>发布> createdBy with User。

我已尝试过以下代码:

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();
    }
});
});

但是,它什么都不做或发送任何通知。我做错了什么?我怎样才能实现我的目标?

1 个答案:

答案 0 :(得分:3)

由于您尝试在指针(user)内抓取指针(post),因此需要先获取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();
            }
        }); 
    });

});    

让我知道它是否适合你。