【问题标题】:Google Firestore .set() doesn't calling failure listener when connection lost [duplicate]连接丢失时,Google Firestore .set() 不会调用失败侦听器 [重复]
【发布时间】:2021-11-18 12:03:33
【问题描述】:

我正在尝试在应用程序创建文档时捕获一个案例,但在那一刻连接丢失。所以我希望OnFailureListenerOnCanceledListener 被调用,但在这种情况下根本没有调用任何回调。在 .add() 或 .set() 中创建文档时如何捕获错误?谢谢。

【问题讨论】:

  • 如果网络丢失,它不会触发任何事情。一旦网络处于活动状态,它只会将这些更改写入本地缓存,然后将这些更改写入 Firestore。

标签: android firebase google-cloud-firestore


【解决方案1】:

正如@ArpanSarkar 在他的评论中提到的那样,当网络连接丢失(用户设备上没有网络连接)时,OnFailureListenerOnCanceledListener 都不会被触发。因此,当没有互联网连接时,Firestore SDK 不会抛出异常。这是有道理的,因为 Firestore 旨在离线工作。在幕后,Firestore SDK 会尝试重新连接,直到设备重新连接。话虽如此,请注意,离线时进行的所有写入都会添加到队列中,一旦设备重新连接互联网,所有内容都将与 Firebase 服务器同步。

另一方面,只有当数据已在 Firebase 服务器上提交(或拒绝)时,例如由于不正确的安全规则,才会引发异常。

【讨论】:

    猜你喜欢
    • 2017-10-27
    • 2016-11-14
    • 1970-01-01
    • 2016-05-15
    • 2018-11-05
    • 2017-12-26
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    相关资源
    最近更新 更多