这个问题在这里已有答案:
我正在为我的Android应用程序功能使用Firebase实时数据库 . 我每秒都会向Firebase数据库写入数据,无论应用程序是在线还是脱机,都会在指定的时间内执行某些操作 .
如果在离线状态下执行写入操作,那么我想在这些数据成功同步到Firebase服务器时执行某些操作 .
仅供参考,我正在使用JobScheduler,它将在网络连接可用后启动,之后我还可以使用 .info/connected
路径监听firebase连接状态 .
用户可能同时杀死并重新启动了应用程序 .
But after that how can I ensure that all data synced to server successfully?
2 回答
当您在引用上调用setValue(...)时,可以传入可选的CompletionListener() . 当您的数据与Firebase服务器同步(或被其拒绝)时,将调用完成侦听器的
onComplete(...)
方法 . 另请参阅我的答案以获取示例:Firebase Android - how to tell if node has been synced当用户离线时,实时数据库SDK使用设备上的本地缓存来提供和存储更改 . 当设备联机时,本地数据会自动同步 .