以下是打印“ no username用户”,但将retVal打印为“ false”(我将功能更改为字符串只是为了进行故障排除,理想情况下应该是bool)我是新手,这绝对使我发疯。它正在重新分配retVal的代码块中,但是没有重新分配它
静态函数isUserNameUnique(_用户名:字符串)->字符串{
var retVal = "false"
let db = Firestore.firestore()
let newQuery = db.collection("users").whereField("userName", isEqualTo: username)
newQuery.getDocuments { (document, error) in
if document!.isEmpty {
retVal = "true"
print("No user with username")
}
}
print("\(retVal)")
return retVal
}
您需要完成,因为请求是异步的,请使用Bool
而不是String
static func isUserNameUnique(_ username : String,completion:@escaping((Bool) ->())) {
let db = Firestore.firestore()
let newQuery = db.collection("users").whereField("userName", isEqualTo: username)
newQuery.getDocuments { (document, error) in
completion(document!.isEmpty)
}
}