gpt4 book ai didi

ios - Swift FIRMessaging 推送通知 token 重置

转载 作者:行者123 更新时间:2023-11-28 16:07:53 25 4
gpt4 key购买 nike

我目前正在我的新项目中使用推送通知,因此我正在尝试生成推送 token 。我的问题是,这些什么时候到期?我将每个用户的推送 token 存储在我的 Firebase 数据库中,但我知道这些 token 会自行过期/重新生成。所以我的问题是,保持推送 token 最新的最佳方法是什么?

我会在每次用户导航到他们的个人资料时都这样做吗?:

let token = FIRInstanceID.instanceID().token()

ref.child("Users").child(id).child(pushToken).updateChildValues(["tokenid":token])

你看,截至目前,我要求用户在注册后立即允许推送通知,但不知何故,即使我拒绝了请求,它似乎仍会生成 token ID。所以我的问题是,我怎样才能更新这个 token ID?我必须在 AppDelegate 中执行此操作吗?

谢谢。非常感谢您的帮助!

最佳答案

要将 token 正确存储在数据库中,您需要处理两种情况:

  1. 应用启动时
  2. token 刷新时

第一个get the current token在应用程序/主视图上通过调用 FirebaseInstFIRInstanceID.instanceID().token() 开始,例如 viewDidLoad:

if let token = FIRInstanceID.instanceID().token() {
ref.child("Users").child(id).child(pushToken).updateChildValues(["tokenid":token])
}

由于当前token可能还没有生成,所以需要在这段代码中处理nil

然后还有 monitor for changes to the token通过实现 tokenRefreshNotification:

func tokenRefreshNotification(notification: NSNotification) {
if let refreshedToken = FIRInstanceID.instanceID().token() {
ref.child("Users").child(id).child(pushToken).updateChildValues(["tokenid":refreshedToken])
}

}

另请参阅我对类似 Android 用例的回答:Update Firebase Instance ID on app update

关于ios - Swift FIRMessaging 推送通知 token 重置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39975953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com