大家好,今天本人给大家带来文章《使用 Firebase 进行通知,捕获“应用程序实例注销”》,文中内容主要涉及到,如果你对Golang方面的知识点感兴趣,那就请各位朋友继续看下去吧~希望能真正帮到你们,谢谢!
问题内容尝试使用 firebase 进行跨平台移动通知。获取设备令牌的客户端代码似乎有效,因为我们可以从 firebase web 控制台发送通知。但我不知道如何从我们的服务器发送通知。我们收到错误:app 实例已取消注册;代码:注册令牌-未注册;详细信息:在以下 go 代码片段中调用
:messagingclient.send
时未找到请求的实体
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 管理 sdk”下。
解决方案
根据documentation for FCM error codes,注册令牌未注册的意思是:
提供的注册令牌未注册。之前有效的 注册令牌可能因多种原因而被取消注册, 包括:
- 客户端应用已从 FCM 取消注册。
- 客户端应用程序已自动取消注册。如果用户卸载应用程序,或者在 iOS 上,如果 APNS 反馈 服务报告 APNS 令牌无效。
- 注册令牌已过期。例如,Google 可能决定刷新注册令牌,或者 iOS 的 APNS 令牌可能已过期 设备。
- 客户端应用已更新,但新版本未配置为接收消息。
对于所有这些情况,请删除此注册令牌并停止使用它 发送消息。
鉴于这里有多种可能性,我们实际上不可能说出它是哪一种。如果您需要 FCM 故障排除方面的帮助,请致电 contact Firebase support directly,并提供任何人都可以采取的重现问题的确切步骤。
就我而言,它可以从页面中删除通知权限并再次请求它们,这导致了新的问题生成令牌,它不再给出该错误。
希望对你有帮助
好了,本文到此结束,带大家了解了《使用 Firebase 进行通知,捕获“应用程序实例注销”》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多Golang知识!