Считывая документы Firebase, они имеют маленькое предупреждение под примером кода.
Примечание. Если в месте, на которое ссылается docRef, нет документа, результирующий документ будет пустым, и вызов существуетон вернет false.
Однако вам нужно добавить обработчик завершения в функцию, если вы работаете с сетевыми запросами. Swift вернет переменную result
, если вы ее указали;игнорируя любой ответ от обработчика getDocuments
.
Я изменил функцию, чтобы исправить ваш беспорядок.
func checkIfValid(db: Firestore, key: String, completion: @escaping(Bool) -> ()) {
let docRef = db.collection("user").document(key)
docRef.getDocument { (document, error) in
if let document = document, document.exists {
print("document exists.")
completion(true)
} else {
print("document does not exists.")
completion(false)
}
}
}
И чтобы получить ответ, просто используйте это.
checkIfValid(db: db, key: "", completion: {success in
print(success)
})