【问题标题】:Parse Migration - Client to Client Push Notifications解析迁移 - 客户端到客户端推送通知
【发布时间】:2023-03-24 16:42:01
【问题描述】:

当我们从 Parse 迁移时,我们正在尝试实现客户端到客户端的推送通知。通过其他平台、讨论等,他们似乎通过云代码来做到这一点——社区的几个问题——

  1. 我们是否必须在生产环境中公开主密钥?
  2. 是否有人在以下场景中使用了一些他们可以共享的示例云代码: 用户 X 喜欢用户 Y 的对象 Z...用户 Y 会实时收到用户 X 的动作触发的通知。

TIA。

【问题讨论】:

    标签: ios parse-platform push-notification cloud


    【解决方案1】:
    1. 没有。主密钥将仅在服务器端的云代码中使用,不会暴露给您的客户端,因此当您从云代码调用推送 api 时,您需要设置 useMasterKey: true

    2. 为了向您的 Y 发送推送,您需要执行以下操作:

      • 当您在客户端代码中创建 ParseInstallation 时,请确保您还将用户保存在一个列中。您需要将用户保存在 ParseInstallation 中,因为您的要求是将推送发送给一个或多个用户,因此为了知道该用户拥有哪些设备(一个用户当然可以拥有多个设备),您需要保存对用户的引用在 ParseInstallation 类中

      • 接下来您需要使用以下代码向用户发送推送通知:

    Parse.Cloud.afterSave("SendPush", function(request) {
    
    
      var query = new Parse.Query(Parse.User);
      query.equalTo("objectId", "{YOUR_USER_OBJECT_ID"});
    /* here you get the user by it's id. if you have another identifier or you want to use another field you can change it. You can also add multiple conditions if you like */
    
    // here you can add other conditions e.g. to send a push to sepcific users or channel etc.
    
    var payload = {
      alert: "YOUR_MESSAGE"
        // you can add other stuff here...
    };
    
    
    Parse.Push.send({
      data: payload,
      where: query
    }, {
      useMasterKey: true
    })
    .then(function() {
      response.success("Push Sent!");
    }, function(error) {
      response.error("Error while trying to send push " + error.message);
    });
    });

    请确保您从客户端发送用户 Y 的 objectId。如果您不发送,您将需要找到一种方法来获取它(也许通过从数据库中获取它)

    【讨论】:

    • 非常感谢,冉!我想我的主要问题是让所有不同的系统相互交流……比如 Parse 云代码将如何与 MongoDB 对话以及所有这些与 AWS 对话。但这也很有帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-22
    • 1970-01-01
    相关资源
    最近更新 更多