我将Firebase与Android应用程序(身份验证,数据库和通知)配合使用。

我正在尝试从外部服务器(在nodejs中)发送通知,以便一个用户可以向另一个用户发送通知。

因此,Android应用程序会记住一个UserId列表(与Firebase Auth中的ID相同),然后将此列表发送到nodejs服务器。

使用此列表,服务器将联系url'https://fcm.googleapis.com/fcm/send',但是Firebase向我返回了InvalidRegistration,因为我发送的是UserId列表,而不是Firebase通知创建的注册 token 列表。

我应该记住这些 token ,还是可以使用用户ID发送通知?

(而且当我尝试使用 token 列表时,它当然可以工作。)

var requestData = {
    "registration_ids": userIds, //Problem is here
    "data": {
      "message": "A message"
     }
  };

  request({
      url: "https://fcm.googleapis.com/fcm/send",
      method: "POST",
      json: true,
      headers: {
          "Authorization": "key=firebaseKey",
          "content-type": "application/json",
      },
      json: requestData
  },
  function(err, response, body) {

  });

最佳答案

是的你可以。为此,您必须注册这些用户ID而不是设备ID token 。然后,firebase会识别您的用户ID。

@Override
public void onTokenRefresh() {

    // Get updated InstanceID token.
    String refreshedToken = FirebaseInstanceId.getInstance().getToken();

    Log.d(TAG, "Refreshed token: " + refreshedToken);

    // TODO: Implement this method to send any registration to your app's servers.
    sendRegistrationToServer(refreshedToken); //Use your Id here
}

10-04 22:33
查看更多