如何从指针访问对象?
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();
}
});
});
});
让我知道它是否适合您。
我有一个应用程序,只要用户的 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();
}
});
});
});
让我知道它是否适合您。