尝试使用Firebase进行跨平台的移动的通知。获取设备令牌的客户端代码似乎可以工作,因为我们可以从Firebase Web控制台发送通知。但是我不知道如何从我们的服务器发送通知。在下面的Go代码片段中调用messagingClient.Send
时,我们得到错误:app instance has been unregistered; code: registration-token-not-registered; details: Requested entity was not found
:
ctx := r.Context()
opt := option.WithCredentialsFile("serviceAccountKey.json")
app, err := firebase.NewApp(context.Background(), nil, opt)
if err != nil {
return err
}
// Obtain a messaging.Client from the App.
messagingClient, err := app.Messaging(ctx)
if err != nil {
return err
}
// See documentation on defining a message payload.
message := &messaging.Message{
Notification: &messaging.Notification{
Title: "Notification title",
Body: "Notification body",
},
Token: myDeviceToken,
}
// Send a message to the device corresponding to the provided
// registration token.
response, err := messagingClient.Send(ctx, message)
if err != nil {
return err
}
字符串
我们正在使用的凭据文件来自Firebase控制台,位于“设置”、“服务帐户”、“Firebase Admin SDK”下。
2条答案
按热度按时间8ehkhllq1#
根据FCM错误代码的文档,registration-token-not-registered表示:
提供的注册令牌未注册。由于各种原因,可能会取消注册以前有效的注册令牌,包括:
对于所有这些情况,请删除此注册令牌并停止使用它发送消息。
鉴于这里有几种可能性,我们真的不可能说它是哪一个。如果您需要帮助与FCM故障排除,请contact Firebase support directly与准确的步骤,任何人都可以采取重现问题。
yvt65v4c2#
在我的情况下,它从页面中删除通知权限并再次请求它们,这导致生成一个新的令牌,它不再给出该错误。
我希望帮你