如果应用程序在没有互联网的情况下崩溃/关闭,Firebase本地数据会发生什么



我正在用Java编写一个Android应用程序,这是我第一次使用Firebase实时数据库。用户在没有任何互联网的情况下输入大量数据的可能性非常高。

那么,如果应用程序在连接互联网之前退出/崩溃,这些数据会发生什么?

这些数据都丢失了吗?我应该将所有这些写入永久存储(共享引用(吗?我不得不承认,我尝试Firebase的主要原因之一是为了避免自己管理数据,但我不能失去任何东西。

您很可能在询问Firebase的数据库之一:Cloud Firestore和Realtime Database。虽然它们在如何坚持本地写入方面有很大不同,但它们的行为足够常见,可以从基线开始。


在应用程序中运行的数据库客户端在其本地缓存中保留一个挂起写入的队列:在本地应用但尚未在服务器上应用的写入。

对于Cloud Firestore,此挂起写入队列始终保留在设备的本地磁盘上。因此,当应用程序重新启动时,它会读取队列,并尝试再次将它们与服务器同步。

对于实时数据库,它(默认情况下(只保存在内存中,因此在崩溃/重新启动时会丢失。您可以告诉实时数据库通过启用其磁盘持久性层,将其最近读取的数据和挂起的写入队列存储在磁盘缓存中。在这种情况下,重新启动时的行为与上面相同:客户端读取挂起的写入队列,并尝试将它们与服务器同步。

最新更新