【问题标题】:Firestore addDocument completion handler not called when iPhone in airplane modeiPhone处于飞行模式时未调用Firestore addDocument完成处理程序
【发布时间】: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


【解决方案1】:

Firestore 不会返回有关网络不可用的错误,因为它不认为这是一个错误,因为它可以脱机。写入操作排队,直到连接返回,然后自动重试。

【讨论】:

    猜你喜欢
    • 2021-03-18
    • 2019-05-27
    • 2014-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-07
    • 1970-01-01
    相关资源
    最近更新 更多