【问题标题】:Parse Cloud: Send a notifications to a specific userParse Cloud:向特定用户发送通知
【发布时间】:2016-01-07 15:59:04
【问题描述】:

我目前正在实施推送通知以关注用户。显然,我设法完成了推送通知并且响应良好。因此,通知已发送给每个人。我想创建推送通知,并且每次其他用户关注他们的用户帐户时,仅由一个相应的用户收到通知。

我还没有创建一个应该与用户关联的指针。即使我创建,我应该对我的 Cloudcode 进行任何修改吗? 每当其他用户关注该用户时,我想向特定用户发送推送通知。

例如:测试 1 跟随你。

    Parse.Cloud.define("FollowersAndFollowing", function(request,result){
  var query = new Parse.Query(Parse.User);
  var message = request.params.message;
   var pushQuery = new Parse.Query(Parse.Installation);
  query.equalTo('userLink',request.params.User);

  Parse.Push.send({
    where: pushQuery,
    data : { 
      alert: message,
      badge: "Increment",
      sound: "",
    }
    }, {
    success: function(result) {
    console.log(JSON.stringify(result));
    response.success(result);
    },
    error: function(error) {
    console.error(JSON.stringify(error));
    response.error(error)
    }
  });
});

上面这个^是我在.JS中的云代码

if (status == false) {

                                // Create the push notification message.s
                                let pushMessage = "\(PFUser.currentUser()!.username!) has followed you."

                                // Submit the push notification.
                                PFCloud.callFunctionInBackground("FollowersAndFollowing", withParameters: ["message" : pushMessage, "User" : "\(userData.username!)"])
                            }

以上是前端的快速代码。

enter image description here

第二个网址是我的类和我如何设置的子类

enter image description here

【问题讨论】:

    标签: javascript swift parse-platform parse-cloud-code


    【解决方案1】:

    Installation 类上使用云代码beforeSave 触发器,以使User 指针保持最新。

    // Make sure all installations point to the current user
    Parse.Cloud.beforeSave(Parse.Installation, function(request, response) {
    
        Parse.Cloud.useMasterKey();
        if (request.user) {
            request.object.set("user", request.user);
        } else {
            request.object.unset("user");
        }
        response.success();
    });
    

    您可能还想在 Follow 类上使用 afterSave 触发器 来发送推送通知,而不是调用云函数。在不知道该类的结构或您如何实现追随者/追随者方案的情况下,很难提供任何进一步的信息。

    【讨论】:

    • 其实我已经实现了 beforeSave 触发器。我还在前端添加了这个
    • [[PFInstallation currentInstallation] setObject:[PFUser currentUser] forKey:@"user"]; [[PFInstallation currentInstallation] saveEventually];
    • 其他一切正常吗?在为新关注者触发推送通知时,在 follow 类上使用 afterSave 触发器会比调用云函数更有效。调用云函数将使用 1 个 API 请求,而 afterSave 触发器是免费的。
    • Russell,似乎我已经实现了所有这些,但目标仍然是每个人。除此之外,我还在 appDelegate [[PFInstallation currentInstallation] setObject:[PFUser currentUser] forKey 上添加了这个:@“用户”]; [[PFInstallation currentInstallation] saveEventually] 并且应用程序卡在应用程序锁定屏幕上。你知道为什么会这样吗?
    • 尝试打印出request.params.User 以确保它是正确的。使用console.log("request.params.User = " + JSON.stringify(request.params.User));可能是设置不正确
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-26
    • 1970-01-01
    • 2017-10-29
    • 2021-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多