首页 > 解决方案 > 如何检测firestore连接失败

问题描述

我想知道如何使用 angularfire2 知道云 Firestore 数据库是否可访问并且我可以获得集合值?

这里的目标是如果它失败了,我会去获取本地数据。

我有类似的东西

this.afStore.collection('messages').valueChanges().subscribe(
  (messages: any[]) => {

    // DO STUFF
  });

谢谢

标签: javascriptangularfirebasegoogle-cloud-firestore

解决方案


Firestore 没有公开“在线”或“离线”的概念。在内部,SDK 管理连接,并无限期地重试,直到它可以重新获得连接。SDK 通常假定您的应用程序处于在线状态,但会暂时中断。

在重新获得连接之前,使用本地持久性缓存来满足读取和写入。无法来自缓存的读取等待服务器响应 10 秒(除非您的连接非常慢)。涉及事务的写入不能写入本地缓存 - 它必须在完全在线时执行。

您可以尝试自己检查是否存在某种连接,但这并不能保证 SDK 与服务端有立即可用的连接。


推荐阅读