我使用什么作为用户令牌来为用户订阅 Firebase 中的主题?
What do I use as the User Token to subscribe users to topics in Firebase?
我正在向 firebase 服务发送请求以订阅 Firebase-authenticated 用户主题:
POST https://iid.googleapis.com/iid/v1:batchAdd
body:
{
"to": "/topics/:my-topic",
"registration_tokens": [
:user-token
]
}
headers:
Authorization: key-:app-key
Content-Type: application/json
我正在使用 JWT 通过 API 创建用户,所以我假设发送 JWT 令牌作为订阅的用户令牌会起作用,但是,我收到以下错误 200 Success
回应:
{
"results": [{
"error": "INVALID_ARGUMENT"
}]
}
这样做之后,我尝试使用 registration_tokens
数组中的用户 UID,但遇到了同样的错误。
目前有没有办法让 Firebase 用户订阅主题?
不,FCM 订阅是基于应用程序实例的,而不是基于经过身份验证的用户的。当您使用 Firebase 云消息传递时,会自动为设备实例生成一个 Instance ID 令牌。那是应该用来订阅主题的令牌。
通常的流程是,在设备上生成令牌并且用户登录到您的应用后,您将这些与服务器上的值相关联,因此当您想要订阅用户时在服务器端对于一个主题,您可以查找其相应的实例 ID 令牌并使用它来订阅它们。
查看获取 IID 令牌生成回调并将其发送到应用服务器的 Android 示例 here. See similar iOS sample here。
我正在向 firebase 服务发送请求以订阅 Firebase-authenticated 用户主题:
POST https://iid.googleapis.com/iid/v1:batchAdd
body:
{
"to": "/topics/:my-topic",
"registration_tokens": [
:user-token
]
}
headers:
Authorization: key-:app-key
Content-Type: application/json
我正在使用 JWT 通过 API 创建用户,所以我假设发送 JWT 令牌作为订阅的用户令牌会起作用,但是,我收到以下错误 200 Success
回应:
{
"results": [{
"error": "INVALID_ARGUMENT"
}]
}
这样做之后,我尝试使用 registration_tokens
数组中的用户 UID,但遇到了同样的错误。
目前有没有办法让 Firebase 用户订阅主题?
不,FCM 订阅是基于应用程序实例的,而不是基于经过身份验证的用户的。当您使用 Firebase 云消息传递时,会自动为设备实例生成一个 Instance ID 令牌。那是应该用来订阅主题的令牌。
通常的流程是,在设备上生成令牌并且用户登录到您的应用后,您将这些与服务器上的值相关联,因此当您想要订阅用户时在服务器端对于一个主题,您可以查找其相应的实例 ID 令牌并使用它来订阅它们。
查看获取 IID 令牌生成回调并将其发送到应用服务器的 Android 示例 here. See similar iOS sample here。