如果 Firebase 一开始就在线并暂时失去连接,然后重新连接,它将同步本地数据。因此,在许多情况下,一旦 Firebase 上线,您就可以在中断期间继续推送到 Firebase。
对于真正的离线使用,您可能需要监控设备的状态,并注意.info/connected
了解 Firebase 何时连接。
new Firebase('URL/.info/connected').on('value', function(ss) {
if( ss.val() === null ) /* firebase disconnected */
else /* firebase reconnected */
});
在支持真正的离线存储之前,使用当前 Firebase 工具集实现此目的的方法是
- 保持本地数据简单小
- 设备上线后,将本地存储的数据转成JSON
- 用于
set()
将数据保存到 Firebase 中的适当路径
此外,如果应用程序在设备离线时加载,出于某种原因,您可以通过调用 set() 来“初始化”数据来“启动”Firebase。然后,您可以正常使用 Firebase(就像它在线一样),直到它在未来某个时候上线(您还希望存储您的本地副本以处理它从不在线的情况)。
显然,越简单越好。并发修改、本地存储大小限制以及许多其他因素将迅速累积,使任何离线存储解决方案变得复杂且耗时。