如何使用swift更新firebase中的令牌?

Posted

技术标签:

【中文标题】如何使用swift更新firebase中的令牌?【英文标题】:How to update token in firebase using swift? 【发布时间】:2017-11-22 01:48:44 【问题描述】:

应用可以使用server key 和设备InstanceToken 向远程设备发送通知。现在,instanceToken 在每次用户安装应用程序时都会不断变化。该应用程序使用此instanceToken 向其他用户发送通知。

如何在每次用户卸载和安装应用程序时更新instanceToken,以便其他用户发送通知时将其提供给同一用户

这个方法在AppDelegate中的使用已经在不少地方看到了,需要高手帮忙理解其背后的逻辑或者帮忙设计一个更好的方法

NotificationCenter.default.addObserver(self, selector: 
#selector(self.tokenRefreshNotification(notification:)), name: 
NSNotification.Name.InstanceIDTokenRefresh, object: nil)

能找到的最好的资源是docs 和来自firecast团队的视频video

【问题讨论】:

【参考方案1】:
NotificationCenter.default.addObserver(self,  selector: #selector(self.getFcmToken),
    name: .firInstanceIDTokenRefresh,
    object: nil)

    func getFcmToken(notification: NSNotification) 
        guard let contents = FIRInstanceID.instanceID().token()
            else 
                return
        
        print("InstanceID token: \(contents)")
        if let token = FIRInstanceID.instanceID().token()
            print(token)
            SaveToDefaults().setFcmToken(token: token)
            self.hitPushNotificationSubcribeApi(token: token)
        

func messaging(_ messaging: FIRMessaging, didRefreshRegistrationToken fcmToken: String) 

   print(fcmToken)


【讨论】:

【参考方案2】:

您可以使用以下 FCM 委托方法监控 FCN 令牌何时更改:

func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String)  

【讨论】:

以上是关于如何使用swift更新firebase中的令牌?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JWT for Google firebase 生成身份验证令牌?

Swift和Firebase:检测已撤销的令牌

如何在 Swift 4 中更新 Firebase 身份验证中的电子邮件地址

如何在 Swift Firebase 中更新一个集合中的所有文档

如何处理 Firebase 中过期的用户 ID 令牌?

使用 Swift 更新 Firebase 中的子值