我想设置一个全局变量,使其等于我从Firestore数据库中获取的某些值。但是,我认为这是因为
Firestore.firestore().collection("users").document(self.id).getDocument { (snapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else{
self.nameGlobal = snapshot?.get("name") as! String ?? "failed"
self.usernameGlobal = snapshot?.get("username") as! String ?? "failed"
}
}
print (self.nameGlobal)
print (self.usernameGlobal)
由于异步特性,最后的打印语句似乎在Firestore函数完成运行之前已执行。有谁知道我可以如何强制函数在执行后续行之前完成对全局变量的更新?我真的很希望能够在回调之外访问这些变量,而不是在回调内部编写所有代码。