【发布时间】:2020-07-08 20:09:02
【问题描述】:
所以我试图从 Firebase Firestore 获取数据并将其放入我的函数内的局部变量中。在函数内部,我为名称创建了一个变量,该变量应该包含从 Firebase 获取的用户名称的值。问题在于,赋予 nameData 值(来自数据库的名称)的变量名称实际上从未发生过变异。我应该如何从数据库中获取名称并将其放入变量中?
public func fetchName(email: String) -> String {
var name: String = "FIRST VALUE"
database.collection(workerCollection).document(email).getDocument() {(querySnapshot, error) in
if let error = error {
print("Error getting documents: \(error)")
} else {
//get info about user
if (querySnapshot != nil && querySnapshot!.exists){
let documentData = querySnapshot!.data()!
if let nameData = (documentData["Name"] as! String?){
name = nameData
}
print(name)
}
}
}
return name
}
【问题讨论】:
-
getDocument()是异步的,在查询完成之前立即返回。 -
现在返回的名称是什么?函数是否返回
FIRST VALUE?
标签: swift firebase google-cloud-firestore