【问题标题】:Swift 3 pass data through completion with userIDSwift 3 通过用户 ID 完成传递数据
【发布时间】:2017-03-08 03:52:37
【问题描述】:

我正在尝试在 Firebase 上运行检查以查看用户是否存在,然后我需要在继续之前检查特定的值。我目前有这个:

func myFirebaseNetworkDataRequest(finished: () -> Void) {
    if let user = FIRAuth.auth()?.currentUser {
                self.userUUID = (user.uid)
                getUser(userUUID: self.userUUID)
                finished()
    }
}

在我看来确实加载了:

myFirebaseNetworkDataRequest {

        // perform further operations here after data is fetched
        if AppState.sharedInstance.user == true  {
                    //present 1st view controller 
        } else {
                    //present 2nd view controller
        }

在我的“getUser”函​​数中:

func getUser(userUUID: String) {
    let userFacebookRef = FIRDatabase.database().reference(withPath: "users").child(userUUID)
    //The rest of the Firebase function. 

    AppState.sharedInstance.user == results.active
    //active is = to true

目前发生的情况是如果出现第二个视图控制器,因为 firebase 尚未完成。我意识到我需要一个块,因为 firebase 已经是 asnyc 但是我如何通过闭包/块发送 userUUID?

【问题讨论】:

    标签: ios firebase swift3 firebase-authentication


    【解决方案1】:

    你可以让你的闭包参数有一个它自己的参数。有点像,

    func myFirebaseNetworkDataRequest(finished: (_ isAuthenticated: Bool) -> Void)
    

    然后在您的 viewDidLoad 中,您将提出您的请求...

    open override func viewDidLoad() {
        self.myFirebaseNetworkDataRequest( (isAuthenticated) -> {
            if isAuthenticated {
                // Present VC1
            } else {
                // Present VC 2
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 2014-08-06
      • 1970-01-01
      • 1970-01-01
      • 2021-04-09
      • 1970-01-01
      相关资源
      最近更新 更多