【问题标题】:How to update token in firebase using swift?如何使用swift更新firebase中的令牌?
【发布时间】: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

【问题讨论】:

    标签: ios iphone swift push-notification apple-push-notifications


    【解决方案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) { }
      

      【讨论】:

        猜你喜欢
        • 2017-12-24
        • 2014-09-13
        • 1970-01-01
        • 2016-08-13
        • 2020-04-11
        • 2019-10-10
        • 2021-02-05
        • 2019-06-28
        • 1970-01-01
        相关资源
        最近更新 更多