我正在为我的Android应用程序功能使用Firebase实时数据库。我每秒都会向Firebase数据库写入数据,无论应用程序是在线还是离线,都会在指定的时间内执行某些操作。
如果在离线状态下执行写入操作,我希望在这些数据成功同步到Firebase服务器时执行一些操作。
仅供参考,我正在使用JobScheduler,它将在网络连接可用后启动,之后我还可以使用.info/connected
路径监听firebase连接状态。
用户可能同时杀死并重新启动了应用程序。
但之后如何确保所有数据都成功同步到服务器?
答案 0 :(得分:1)
当您在引用上调用setValue(...)
时,您可以传入可选的CompletionListener()
。
当您的数据与Firebase服务器同步(或被其拒绝)时,将调用完成侦听器的onComplete(...)
方法。另请参阅我的答案,例如:Firebase Android - how to tell if node has been synced
答案 1 :(得分:0)
当用户离线时,Realtime Database SDK会使用设备上的本地缓存来提供和存储更改。当设备联机时,本地数据会自动同步。