我可以使用什么作为用户令牌来订阅用户使用Firebase中的主题?

时间:2016-08-04 13:55:16

标签: firebase firebase-authentication firebase-cloud-messaging

我正在向firebase服务发送请求,以便将Firebase认证用户订阅主题:

POST https://iid.googleapis.com/iid/v1:batchAdd

体:

{
  "to": "/topics/:my-topic",
  "registration_tokens": [
        :user-token
  ]
}

标题

Authorization: key-:app-key
Content-Type: application/json

我正在使用JWT通过API创建用户,所以我假设发送JWT令牌作为订阅的用户令牌会起作用,但是,我收到200 Success响应的以下错误:

{
  "results": [{
    "error": "INVALID_ARGUMENT"
  }]
}

执行此操作后,我尝试使用registration_tokens数组中的用户UID,但遇到了相同的错误。

目前有一种方法可以将Firebase用户订阅到某个主题吗?

1 个答案:

答案 0 :(得分:1)

不,FCM订阅是基于应用程序实例的,而不是基于用户的身份验证。使用Firebase Cloud Messaging时,会自动为设备实例生成Instance ID令牌。这是应该用于订阅主题的标记。

通常的流程是,一旦在设备上生成令牌并且用户登录到您的应用程序,您将这些与服务器上的值相关联,因此当您想要将用户订阅到服务器时,请将其与服务器上的值相关联。您可以查找相应的Instance ID令牌并使用它来订阅它们。

查看获取IID令牌生成回调并将其发送到应用服务器here的Android示例。请参阅类似的iOS示例here