我将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
}