【问题标题】:SWIFT - How to detect Firestore connection errors / offline connectionSWIFT - 如何检测 Firestore 连接错误/离线连接
【发布时间】:2021-07-01 07:33:35
【问题描述】:

当用户将互联网连接设置为离线时,我在 Xcode 控制台中收到以下错误消息:

7.8.0 - [Firebase/Firestore][I-FST000001] WriteStream (11ed16098) 流错误:“不可用:DNS 解析失败”

但是如何以编程方式检测连接状态?我在 Firestore 文档中没有找到有关该主题的任何文档?

【问题讨论】:

    标签: swift google-cloud-firestore connection


    【解决方案1】:

    通常,在这种状态下,最好监控设备的网络连接状态,而不是寻找特定的错误。它不会告诉您 Firebase 何时失败,但它会告诉您设备何时离线,因此您可以预料到失败。你可以使用NWPathMonitor 来做到这一点。 Here是实现示例。

    更好的选择是启用offline capabilities of Firebase,这样您就不用担心用户是否离线,并让 Firebase 处理同步。

    【讨论】:

      【解决方案2】:

      Firestore 不会生成网络连接错误,因为 Firestore 支持离线功能,因此它会在连接返回时重试写入(部分写入,而非全部写入)。因此,您必须独立于 Firestore 确定网络可用性。

      但是,如果您想要一种更传统的方法来完成此任务,即在没有连接时失败并且在连接返回时不会自动重试的方法,您可以在 Firestore 事务中执行它,因为这些方法没有在本地缓存。但是,事务确实带有自动重试,但不是出于连接原因。当事务中涉及的文档在事务完成之前(被其他客户端)修改时,事务可以自动重试,以保证它们是原子的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-04-20
        • 2018-06-10
        • 1970-01-01
        • 2022-01-14
        • 1970-01-01
        相关资源
        最近更新 更多