Cloud Code无法在Parse数据库中找到用户安装

时间:2015-11-28 18:44:29

标签: javascript parse-platform push-notification

我有一个Friends表,其中包含用户友情列表的userIds。 user列是指向User表的指针,friendId也是如此。

我正在尝试找到与特定用户的“friendId”相等的所有用户,并向这些用户发送通知。

我在“安装”表中添加了一个“用户”列,这是一个指向“用户”的指针,以便我可以找到特定用户的安装并发送推送通知。

我遇到的问题是我无法将这些查询链接在一起以将我的推送通知发送到我的朋友列表。

任何建议都有帮助。

我目前的云代码

    Parse.Cloud.define("pushCheckIn", function(request, response) {
// Find users near with pending messages

var friendList = Parse.Object.extend("Friends");
var username = request.params.username;
var location = request.params.location;
var userQuery = new Parse.Query(friendList);

userQuery.equalTo("friendId", Parse.User);

// Find devices associated with these users
var pushQuery = new Parse.Query(Parse.Installation);
pushQuery.matchesQuery("user", userQuery);

var alertMsg = username + " checked-in at " + location;

Parse.Push.send({
  where: pushQuery,
  data: {
    alert: alertMsg,
    sound: "beep-shinymetal.caf",
    title: alertMsg
  }
}, {
  success: function() {
    response.success(alertMsg);
    // Push was successful
  },
  error: function(error) {
    response.error("push failed");
  }
});
});

2 个答案:

答案 0 :(得分:0)

您对表格的描述很复杂且我不完全理解,但我认为new Parse.Query(friendList);应该是new Parse.Query("Friends");userQuery.equalTo("friendId", Parse.User);没有意义完全,如果它是字符串,你应该使用userQuery.equalTo("friendId", yourFriendIdString);

如果你试图更好地解释你的表格,我可以尝试给你更好的建议:)

答案 1 :(得分:0)

如果不使用主密钥,则无法直接查询“安装”表。要查询安装表,请使用

Parse.Cloud.useMasterKey();

执行查询之前