如果超时或无法访问服务器,Fire base 不会调用 onCancelled
Posted
技术标签:
【中文标题】如果超时或无法访问服务器,Fire base 不会调用 onCancelled【英文标题】:Fire base not call onCancelled if timeout or not able to access server 【发布时间】:2014-10-11 01:58:42 【问题描述】:我在使用 firebase 时发现并发出 firebase 在超时或无法连接到服务器时不发送错误的问题。在这种情况下,我们无法向用户提供正确的信息是什么问题。
Firebase 开发人员必须处理这种非常常见的用例。有人遇到过这个问题吗?
.addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(DataSnapshot data)
@Override
public void onCancelled(FirebaseError arg0)
【问题讨论】:
【参考方案1】:利用.info/connected
监控连接状态。 Firebase 在离线时工作,并且您的 onCancelled 事件不会被触发,因为它仍在等待连接恢复以便可以传递消息。
Firebase 是一个实时同步平台。如果没有任何 Internet 访问,您将无法保持数据同步(如何协调本地和远程?)。所以你需要利用磁盘持久性(ios 上的测试版)或者至少有一个初始连接来让事情发生。查看offline capabilities 了解所有这些主题的详细信息。
【讨论】:
以上是关于如果超时或无法访问服务器,Fire base 不会调用 onCancelled的主要内容,如果未能解决你的问题,请参考以下文章
ping 192.168.1.1 请求超时或无法访问目标主机是怎么回事
如果未授予/拒绝访问,则 navigator.geolocation.getCurrentPosition 超时
频繁“发生网络错误(如超时、连接中断或无法访问主机)。”使用 Firebase
使用@angular/fire@6.0.3 无法访问firebase.firestore.FieldValue.serverTimestamp()