"didReceiveRegistrationToken" 不给我fcmToken?
"didReceiveRegistrationToken" does not give me the fcmToken?
我正在使用 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 中,我这样声明设备令牌:
注册ViewController代码:
let deviceToken = UserDefaults.standard.value(forKey:"fcmToken") as? String ?? "not found"
然后我像这样将它保存在我的数据库中
["fcmToken": deviceToken]
但是,这在 Firebase 中总是 returns "not found",并且不会保存实际的设备 ID。如果你们能帮我解决这个问题,那就太好了。
保存到 UserDefaults 时你的 "" 倒了。你拥有它的方式是将字符串 "fcmToken" 保存在 fcmToken String
下
func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
print(fcmToken)
UserDefaults.standard.set(fcmToken, forKey: "fcmToken")
}
我正在使用 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 中,我这样声明设备令牌:
注册ViewController代码:
let deviceToken = UserDefaults.standard.value(forKey:"fcmToken") as? String ?? "not found"
然后我像这样将它保存在我的数据库中
["fcmToken": deviceToken]
但是,这在 Firebase 中总是 returns "not found",并且不会保存实际的设备 ID。如果你们能帮我解决这个问题,那就太好了。
保存到 UserDefaults 时你的 "" 倒了。你拥有它的方式是将字符串 "fcmToken" 保存在 fcmToken String
下 func messaging(_ messaging: Messaging, didReceiveRegistrationToken fcmToken: String) {
print(fcmToken)
UserDefaults.standard.set(fcmToken, forKey: "fcmToken")
}