【发布时间】:2021-03-22 15:37:07
【问题描述】:
这里已经很晚了,我很久没有使用 Firebase,所以我可能会在这里遗漏一些东西。
但是当设备位于airplane mode 或网络不可访问时,永远不会调用此完成处理程序。
我该如何处理?我会假设err 会声明一个错误,但是当没有连接时,isLoading = false 永远不会到达闭包内。
func addUser() {
var ref: DocumentReference? = nil
ref = db.collection("users").addDocument(data: [
"first": "Ada",
"last": "Lovelace",
"born": 1815
]) { err in
if let err = err {
print("Error adding document: \(err)")
} else {
print("Document added with ID: \(ref!.documentID)")
}
isLoading = false
}
}
【问题讨论】:
-
Firestore 不会返回有关网络不可用的错误,因为它不认为这是一个错误,因为它具有离线功能。写入操作排队,直到连接返回,然后自动重试。
-
@bsod 这是一个很好的答案,应该作为答案发布! OP:您是否检查过该数据是否已写入?如果不是,则说明问题是由其他原因造成的。
标签: swift firebase google-cloud-firestore