如何获得" registration_ids"来自Firebase FCM?

时间:2017-03-21 14:46:07

标签: android firebase firebase-cloud-messaging

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"。我只能获得#34;注册令牌&# 34;使用FirebaseInstanceId.getInstance().getToken()。所以任何人都可以告诉我如何获得"registration_ids"

3 个答案:

答案 0 :(得分:12)

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

如果您只想向registration_id 4 "registration_ids"的设备发送通知,则您的"registration_ids": ["4"]数组只需包含一个值,如下所示:FirebaseInstanceId.getInstance().getToken()

如果要向多个设备发送通知,请在每个设备上调用{{1}}以获取令牌,然后使用您已有的值填充数组。

答案 1 :(得分: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 /为前缀)。要发送到多个主题,请使用条件参数。

notification_key作为值传递。

答案 2 :(得分:0)

如果该问题与某人相关,则: 我尝试注册notification_Key,我需要在notification_key_name = uid中与registration_ids = [fcmToken]func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)进行进一步的使用,并成功完成了