完成处理程序未按预期调用 Swift

completion handler does not get called as supposed Swift

我正在尝试从完成处理程序获取 uid,以便我可以构建路径并从我的 Firebase 数据库中检索一些项目,但是 myuserLoggeddbRef 获取时评估为 nill叫。

我的问题是我的完成处理程序是在 dbRef 已经被调用之后调用的,而不是相反。 我认为我的代码将按行执行,1. FIRAuth.auth()?...., 2. dbRef = FIRDatabase....

override func viewDidLoad() {
    super.viewDidLoad()

    FIRAuth.auth()?.addAuthStateDidChangeListener({ (auth:FIRAuth,     user:FIRUser?) in
        if let userSignedIn = user {

            self.myuserLogged = userSignedIn.uid
            print("Welcome buddy \(self.myuserLogged)")

        }
    })
 print("brother \(self.myuserLogged)")

    dbRef = FIRDatabase.database().reference().child("Users/\(myuserLogged)")
    startObservingDB()
}

完成处理程序是异步处理的,因为该操作可能需要一些时间。如果之后需要 dbRef,则需要将其放入完成处理程序中。