swift - "didReceiveRegistrationToken"没有给我 fcmToken?

标签 swift xcode firebase firebase-cloud-messaging devicetoken

我正在使用 firebase 构建一个应用程序,并尝试保存用于推送通知的 FCM token (由 firebase 函数发送)。

我尝试的方法是将 deviceToken 存储在 UserDefault 中,以便稍后使用。

我需要在用户注册时保存 fcmToken(将其存储在我的数据库中的个人资料下)。

当用户注销时,我需要删除数据库中的fcmToken。

因此,我在 AppDelegate 中有我的 func communications(_ communications: Messaging, didReceiveRegistrationToken fcmToken: String) (也许这是错误的?),我将其存储如下:

AppDelegate代码:

func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {

        UserDefaults.standard.setValue("fcmToken", forKey: fcmToken)

}

当我想调用它时,例如在注册 View Controller 中,我声明设备 token ,如下所示:

注册 ViewController 代码:

let deviceToken = UserDefaults.standard.value(forKey:"fcmToken") as? String ?? "not found"

然后我将它保存在我的数据库中,如下所示

["fcmToken": deviceToken]

但是,这在 Firebase 中始终返回“未找到”,并且不会保存实际的设备 ID。如果你们能帮我解决这个问题,那就太好了。

最佳答案

保存到 UserDefaults 时,您的“”倒着了。按照你的方式,你将字符串“fcmToken”保存在fcmToken字符串下

 func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {

    print(fcmToken)
    UserDefaults.standard.set(fcmToken, forKey: "fcmToken")

 }

关于swift - "didReceiveRegistrationToken"没有给我 fcmToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54619080/

相关文章:

ios - 我可以使用 watchOS2 从 WatchKit 应用程序发送网络电话吗?

java - 使用 Android/Java 从嵌套对象 Firebase 检索数据?

javascript - 如何在不从 firebase 重新加载页面的情况下更新数据

ios - 如何从扩展中的函数创建 UIActivityIndi​​cator 计算属性

swift - CharacterSet和CharacterSet.inverted打印出来的结果是一样的

iphone - SIGKILL 信号在 iPhone sim 上启动应用程序,但不是 Xcode

firebase - 持续 session ?

swift - 在分数上加分 (Swift)

swift - 表 Controller 之间的事件指示器 View - swift 2

iphone - Instruments Object Alloc工具GRAPH问题