【问题标题】:Return FCM Token to store in a variable (Swift 5 with Firebase)返回 FCM 令牌以存储在变量中(带有 Firebase 的 Swift 5)
【发布时间】:2020-09-06 20:16:36
【问题描述】:

我正在尝试从当前用户获取 FCM 令牌作为变量,以便将其写入他们的 Firestore 文档。这是我用来检索令牌的代码,它有效:

var fcmToken = ""

    InstanceID.instanceID().instanceID(handler: { (result, error) in
        if let error = error {
             print("Error fetching remote instange ID: \(error)")
             } else if let result = result {
                  fcmToken = setFCMToken(result.token)
        }
    })
//use fcmToken variable here to write data in user document. Value getting sent is just initial declaration of ""
    func setFCMToken(_ token:String) -> String{
        print(token)
        return token
    }

但是 fcmToken 变量没有更新。我相信我的问题可能与范围有关。我不知道如何解决这个问题。感谢您的帮助!

【问题讨论】:

    标签: swift firebase firebase-cloud-messaging


    【解决方案1】:

    我想通了,看起来有点多余,但确实有效:

        //Initial declaration at top of class above ViewDidLoad
        var fcmToken = ""
    
        //In ViewDidLoad
            InstanceID.instanceID().instanceID(handler: { (result, error) in
                if let error = error {
                    print("Error fetching remote instange ID: \(error)")
                    } else if let result = result {
                    self.fcmToken = result.token
                    self.setFCMToken(self.fcmToken)
                }
            })
    
    
        //Where ever you need to access token as variable
        let token = self.getFCMToken()
    
        //bottom of VC
        func setFCMToken(_ token:String){
            print(token)
            self.fcmToken = token
        }
        
        func getFCMToken() -> String{
            return self.fcmToken
            
        }
    
    

    【讨论】:

      猜你喜欢
      • 2023-04-03
      • 2018-05-04
      • 2020-03-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-17
      相关资源
      最近更新 更多