【发布时间】:2019-02-10 17:33:01
【问题描述】:
我正在使用 firebase 构建应用程序,并尝试保存 FCM 令牌以用于推送通知(由 firebase 函数发送)。
我尝试这样做的方式是将 deviceToken 存储在 UserDefault 中,以便以后使用。
我需要在用户注册时保存 fcmToken(将其存储在我的数据库中的配置文件下)。
当用户退出时,我需要删除数据库中的 fcmToken。
因此,我在 AppDelegate 中有我的 func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String)(也许这是错误的?),我这样存储它:
AppDelegate 代码:
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
UserDefaults.standard.setValue("fcmToken", forKey: fcmToken)
}
当我想调用它时,例如在注册视图控制器中,我像这样声明设备令牌:
注册 ViewController 代码:
let deviceToken = UserDefaults.standard.value(forKey:"fcmToken") as? String ?? "not found"
然后我像这样将它保存在我的数据库中
["fcmToken": deviceToken]
但是,这始终会在 Firebase 中返回“未找到”,并且不会保存实际的设备 ID。如果你们能帮我解决这个问题,那就太好了。
【问题讨论】:
-
不相关但从不将 KVC
value(forKey/setValue(_:forKey与UserDefaults一起使用。有一个通用的 setterset(_:forKey,在这种情况下是一个特定的 getterstring(forKey
标签: swift xcode firebase firebase-cloud-messaging devicetoken