【发布时间】:2020-09-26 08:54:55
【问题描述】:
我正在尝试访问我的 firestore 数据库,该数据库存储了名为 user 的集合中的用户 ID、用户名,我想返回当前用户的用户名,但是当我尝试运行以下函数时,它返回给我 nil 值....你知道我错过了什么吗?完成处理程序?
func display(userid: String) -> String
{
var displayname: String
let docRef = db.collection("user").document(uid)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
displayname = document.get("username") as! String
} else {
print("Document does not exist")
}
}
return displayname
}
然后我试图改变这个,但它仍然没有改变我的变量。它似乎被困在我的函数中
var name = "placeholder"
func display(userid: String, completion: @escaping (String) -> Void) {
let docRef = db.collection("user").document(userid)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
if let displayName = document.get("username") as? String {
self.name = displayName
completion(displayName)
}
} else {
print("Document does not exist")
}
}
}
func create()
{
display(userid: uid){
[weak self] displayName in
print(displayName)
self!.name = displayName
}
var ref: DocumentReference? = nil
ref = db.collection("Request").addDocument(data: ["requestername": "name"]
.....
}
【问题讨论】:
标签: ios swift firebase google-cloud-firestore