Firebase 离线数据库
Firebase offline database
我的应用程序有一个使用 firebase 存储和更新数据的目录。如果应用程序在没有在线的情况下被终止并重新启动,我想显示已经缓存的数据。
当应用被杀死时,firebase 是否会删除缓存?
可不可以不管用户在线离线先推送离线数据
只要您启用离线模式,数据就会缓存到磁盘,因此即使在应用程序被杀死后也可以使用。然后,当您再次在同一路径上收听时,将检索数据,即使用户离线也是如此。
对于实时数据库(我假设这就是您所说的),持久性可用于 Android 和 iOS。 Web 没有离线持久性。
在 Android:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
在 iOS 上:
Database.database().isPersistenceEnabled = true
根据我在 Slack Firebase 社区上的回答:
数据库上的 setPersistenceEnabled(true) 必须是您在使用任何引用调用数据之前要做的第一件事。在你调用它之前你的 fetchData() 方法 运行s 所以设置持久性将失败。您可以像这样检查设置持久性是否成功:
bool _success = await globals.firebaseDatabase.setPersistenceEnabled(true);
你还应该 运行 在设置持久性之后这样做:
_success =
await globals.firebaseDatabase.setPersistenceCacheSizeBytes(10000000);
创建数据库实例和设置持久性需要在应用程序中尽早完成……最好回到 main.dart。 (已编辑)
热重载时,success 布尔值会显示为 false,但这是因为持久化只能成功设置一次,并且是在应用程序最初加载时完成的。 (已编辑)
希望能解决您的问题。
keepSynced(true/false) 然后可以用于数据库的特定位以确保特定引用始终是最新的。您可以根据需要打开和关闭它。 keepSynced 基本上只是添加一个监听器。如果您已经在为数据库的这些区域创建侦听器,则不需要 keepSynced。 (已编辑)
ps。上面代码中的 'globals' 只是对我的 global_config.dart 文件的引用。
我的应用程序有一个使用 firebase 存储和更新数据的目录。如果应用程序在没有在线的情况下被终止并重新启动,我想显示已经缓存的数据。
当应用被杀死时,firebase 是否会删除缓存?
可不可以不管用户在线离线先推送离线数据
只要您启用离线模式,数据就会缓存到磁盘,因此即使在应用程序被杀死后也可以使用。然后,当您再次在同一路径上收听时,将检索数据,即使用户离线也是如此。
对于实时数据库(我假设这就是您所说的),持久性可用于 Android 和 iOS。 Web 没有离线持久性。
在 Android:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
在 iOS 上:
Database.database().isPersistenceEnabled = true
根据我在 Slack Firebase 社区上的回答:
数据库上的 setPersistenceEnabled(true) 必须是您在使用任何引用调用数据之前要做的第一件事。在你调用它之前你的 fetchData() 方法 运行s 所以设置持久性将失败。您可以像这样检查设置持久性是否成功:
bool _success = await globals.firebaseDatabase.setPersistenceEnabled(true);
你还应该 运行 在设置持久性之后这样做:
_success =
await globals.firebaseDatabase.setPersistenceCacheSizeBytes(10000000);
创建数据库实例和设置持久性需要在应用程序中尽早完成……最好回到 main.dart。 (已编辑)
热重载时,success 布尔值会显示为 false,但这是因为持久化只能成功设置一次,并且是在应用程序最初加载时完成的。 (已编辑)
希望能解决您的问题。
keepSynced(true/false) 然后可以用于数据库的特定位以确保特定引用始终是最新的。您可以根据需要打开和关闭它。 keepSynced 基本上只是添加一个监听器。如果您已经在为数据库的这些区域创建侦听器,则不需要 keepSynced。 (已编辑)
ps。上面代码中的 'globals' 只是对我的 global_config.dart 文件的引用。