Firebase 有没有办法检测Firestore是否因为客户端在代理之后而无法工作?

Firebase 有没有办法检测Firestore是否因为客户端在代理之后而无法工作?,firebase,google-cloud-firestore,Firebase,Google Cloud Firestore,我最近将我们的web应用程序从GoogleAppengine(Python2.7)移动到了Nodejs/Firebase/Firestore 在Google Appengine上托管时,用户可以访问数据库(NDB),无论他们是否在公司代理之后 现在,由于切换到Firestore,公司代理后面的用户无法访问存储在Firestore中的数据 指示用户必须对其防火墙配置进行一些调整,以使使用Firestore的应用程序正常工作。因此,至少,我想向用户指出,应用程序无法工作,因为他们需要调整防火墙 如何

我最近将我们的web应用程序从GoogleAppengine(Python2.7)移动到了Nodejs/Firebase/Firestore

在Google Appengine上托管时,用户可以访问数据库(NDB),无论他们是否在公司代理之后

现在,由于切换到Firestore,公司代理后面的用户无法访问存储在Firestore中的数据

指示用户必须对其防火墙配置进行一些调整,以使使用Firestore的应用程序正常工作。因此,至少,我想向用户指出,应用程序无法工作,因为他们需要调整防火墙


如何检测用户是否因为代理而在访问Firestore时遇到问题?在这种情况下是否触发了任何错误?

此问题已在之前和之后得到回答。如前所述,没有内置功能告诉您正在脱机工作,您必须依赖外部方法来测试它,正如建议的那样,有一个名为
metadata.hasPendingWrites
的属性可以帮助您确定文档是否有尚未写入后端的本地更改,您可以使用它来确定Firestore是否能够访问服务器。

网络错误通常会被默认忽略并由服务器重试Firestore SDK。我建议找到另一种更直接的方法来测试这个特定案例,而不是依赖SDK。感谢@DougStevenson对此的澄清。在这种情况下,有没有更直接的方法可以推荐?如果没有Firestore SDK,你会怎么做?我真的不知道。当我在Google Appengine上托管应用程序时,使用NDB作为数据存储,这不是一个问题,因此在我转移到Firestore后,它会变得措手不及。代理问题不一定与离线用户相同。当用户在代理之后时,他/她仍然可以检索和呈现从firebase云功能等交付的数据。我可以让云功能与firestore交互,并向用户提供数据,但从客户端到firestore的直接交互不起作用。我了解这些挑战,并且可能会利用云功能等解决这些挑战。用户是否能够编写文档?如果不是,即使不是同一个问题,解决方案也可能类似,因为您可以确定无法到达服务器进行写入。这一点很好。在我的例子中,用户需要读取数据。您能否更具体地说明在尝试从代理后面读取数据时遇到的错误?您是在为nodejs使用管理员SDK还是客户端SDK?你能告诉我关于你的具体实施的更多细节吗?也许我可以建议一个可能的解决办法?我感谢你愿意帮助Emmanuel。解决方案将取决于我们在每种情况下的实现。我们可以想办法解决这个问题。谢谢你的关注。