我正在尝试访问当前登录用户的用户名并将其存储到变量中。
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语句。为什么会发生这种情况?如何在该函数之外使用该快照的结果?
答案 0 :(得分:1)
您想要在闭包/块内移动print("self.currentUser")
。
闭包/块内的代码将在它准备就绪时执行,在你的情况下,我假设每当你正在监听的值发生变化时。 observeSingleEventOfType
之前和之后的所有内容都将按顺序执行。