Firebase - observeSingleEventOfType(:withBlock :)被跳过

时间:2016-02-16 06:19:13

标签: swift firebase

我正在尝试访问当前登录用户的用户名并将其存储到变量中。


    self.ref.observeSingleEventOfType(.Value, withBlock: { snapshot in
        self.currentUser = (snapshot.value.objectForKey("users")?.objectForKey(self.ref.authData.uid)?.objectForKey("username") as! String)
    })
    print(“self.currentUser”)
但是执行observeSingleEventOfType()之前的任何代码,然后执行该函数之后的任何代码。所以这将在检索用户名之前执行print语句。为什么会发生这种情况?如何在该函数之外使用该快照的结果?

1 个答案:

答案 0 :(得分:1)

您想要在闭包/块内移动print("self.currentUser")

闭包/块内的代码将在它准备就绪时执行,在你的情况下,我假设每当你正在监听的值发生变化时。 observeSingleEventOfType之前和之后的所有内容都将按顺序执行。