我正在用Kotlin做一个出勤的android应用。在这个应用程序中,学生列表可以通过sqlite db离线使用。我使用Firebase实时数据库进行考勤保存。但是,我想使应用程序可以在离线模式也工作。并上传考勤时互联网可用,即使重新启动应用程序.
uqcuzwp81#
恕我直言,我看不到实现这种机制的任何好处,因为实时数据库有自己的离线持久化机制。根据official documentation:Firebase应用程序会自动处理临时网络中断。离线时缓存的数据可用,恢复网络连接时Firebase会重新发送任何写入。启用磁盘持久性后,您的应用会将数据本地写入设备,以便您的应用可以在离线时保持其状态,即使用户或操作系统重新启动应用也是如此。因此,在离线时,您可以继续使用该应用程序。在Android中,这可以简单地使用:
Firebase.database.setPersistenceEnabled(true)
lmvvr0a82#
要在Firebase Realtime Database中启用脱机持久性,可以使用以下代码:FirebaseDatabase.getInstance().setPersistenceEnabled(true);这行代码应放在应用中的任何其他Firebase Realtime Database操作之前,最好放在MainActivity的onCreate()方法或Application类中。启用离线持久性允许您的应用在设备上保留Firebase Realtime Database数据的本地副本。它提高了应用程序的性能,允许它读取和写入数据,即使在设备离线或有一个不稳定的互联网连接。当设备重新联机时,脱机时所做的任何更改都将自动与远程数据库同步。请记住,启用脱机持久性可能会消耗额外的设备存储,因为它在本地存储数据库的副本。请确保在启用离线持久性的情况下测试应用的行为,以确保它满足您的要求并且不超过设备存储限制。
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
2条答案
按热度按时间uqcuzwp81#
恕我直言,我看不到实现这种机制的任何好处,因为实时数据库有自己的离线持久化机制。根据official documentation:
Firebase应用程序会自动处理临时网络中断。离线时缓存的数据可用,恢复网络连接时Firebase会重新发送任何写入。
启用磁盘持久性后,您的应用会将数据本地写入设备,以便您的应用可以在离线时保持其状态,即使用户或操作系统重新启动应用也是如此。
因此,在离线时,您可以继续使用该应用程序。在Android中,这可以简单地使用:
lmvvr0a82#
要在Firebase Realtime Database中启用脱机持久性,可以使用以下代码:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
这行代码应放在应用中的任何其他Firebase Realtime Database操作之前,最好放在MainActivity的onCreate()方法或Application类中。
启用离线持久性允许您的应用在设备上保留Firebase Realtime Database数据的本地副本。它提高了应用程序的性能,允许它读取和写入数据,即使在设备离线或有一个不稳定的互联网连接。当设备重新联机时,脱机时所做的任何更改都将自动与远程数据库同步。
请记住,启用脱机持久性可能会消耗额外的设备存储,因为它在本地存储数据库的副本。请确保在启用离线持久性的情况下测试应用的行为,以确保它满足您的要求并且不超过设备存储限制。