【发布时间】:2021-06-26 17:12:35
【问题描述】:
我编写了这个函数,它接收用户名和密码字符串。然后它会查询 firestore 数据库中的用户集合,以查看是否使用了该用户名。如果查询返回任何文档,它会返回并离开闭包。如果它没有找到文档,它会创建具有指定数据的用户。该函数正确写入数据库,但查询逻辑不起作用,因此多个用户具有相同的用户名。
这里是与函数相关的相关代码:
func createAccountWith(_ username: String, _ password: String){
let userPath = "users"
let store = Firestore.firestore()
let userDB = store.collection(userPath)
//Query the DB for the given username. If we find that username, then throw an error
userDB.whereField("username", isEqualTo: username).getDocuments(){ (querySnapshot, err) in
if let error = err{
print("Error querying DB: \(error)")
return
}
for document in querySnapshot!.documents{
if document.exists{
return
}
}
}
//set data if no document exists
userDB.document("\(UUID().uuidString)").setData(
[
"username":username,
"password":password
]
)
}
【问题讨论】:
-
WWDC async await video 非常擅长解释“旧”方式、新方式以及如何使闭包与新方式协同工作。
标签: google-cloud-firestore swiftui