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

How to update token in firebase using swift?

应用程序可以使用 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

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

func messaging(_ messaging: Messaging, didRefreshRegistrationToken fcmToken: String) { }
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)

}