有人知道为什么 firebase 显示此警告:
Consider using asynchronous alternative function
当我使用以下代码时:
class UserServices {
private let db = Firestore.firestore()
private var doesUserIdExists = false
static let shared = UserServices()
func checkUsernameAvailability(newUsername: String, doesExists: @escaping (Bool) -> ()) async throws {
db.collection("usernames").getDocuments { querySnapshot, error in
if let error {
doesExists(true)
print("Error getting users documents. Error: \(error)")
} else {
if let querySnapshot {
var usernames: [String] = []
for document in querySnapshot.documents {
let id = document.documentID
usernames.append(id)
}
doesExists(usernames.contains(newUsername))
} else {
doesExists(false)
}
}
}
}
}
我认为这是一个非常简单的函数,如果我使用
await
,它会显示没有异步调用的警告,因此不需要它。尽管警告让我感到压力很大,但代码仍按预期工作。我对 Swift 世界还很陌生,
任何帮助表示赞赏。我见过其他类似的问题,但没有解决方案。
我把这个:
docRef.setData(docData) { error in
if let error = error {
print("Error writing document: \(error)")
} else {
print("Document successfully written!")
}
}
进入此:
Task {
do {
try await docRef.setData(docData)
}
catch {
print(error)
}
}
“考虑使用异步替代函数”警告不再显示