如何从Firebase FCM获取“registration_ids”?

问题描述 投票:11回答:2

FCM documentation这里告诉我如何向设备组发送消息,所以我要发送如下内容:

https://android.googleapis.com/gcm/notification
Content-Type:application/json
Authorization:key=API_KEY
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["4", "8", "15", "16", "23", "42"]
}

但是,我没有发现有任何明确的解释告诉我如何从Firebase FCM获得"registration_ids"。 我只能使用FirebaseInstanceId.getInstance().getToken()获得“注册令牌”。 所以任何人都可以告诉我如何获得"registration_ids"吗?

android firebase firebase-cloud-messaging
2个回答
12
投票

"registration_ids"是通过在设备上调用FirebaseInstanceId.getInstance().getToken()获得的注册令牌数组。如果在阵列中放置多个注册令牌,则会向每个令牌发送相同的推送通知。

如果您只想向一个registration_id4的设备发送通知,那么您的"registration_ids"数组只需要包含一个值,如下所示:"registration_ids": ["4"]

如果要向多个设备发送通知,请在每个设备上调用FirebaseInstanceId.getInstance().getToken()以获取令牌,然后使用您已有的值填充阵列。


2
投票

您包含的示例请求:

https://android.googleapis.com/gcm/notification
Content-Type:application/json
Authorization:key=API_KEY
project_id:SENDER_ID

{
   "operation": "create",
   "notification_key_name": "appUser-Chris",
   "registration_ids": ["4", "8", "15", "16", "23", "42"]
}

用于创建设备组。

registration_ids参数是指您要在该特定设备组中添加的Registration Tokens。被描述成:

FCM SDK为每个客户端应用程序实例生成的ID。单个设备和设备组消息传递所必需的。请注意,注册令牌必须保密。

这意味着它在客户端应用程序端生成,并充当该特定设备(客户端应用程序实例)的标识符。

要将下游消息发送到设备组,只需使用to参数:

此参数指定邮件的收件人。

该值可以是设备的注册令牌,设备组的通知密钥或单个主题(以/ topics /为前缀)。要发送到多个主题,请使用condition参数。

通过notification_key作为价值。

© www.soinside.com 2019 - 2024. All rights reserved.