当前位置: 首页 > 知识库问答 >
问题:

Firebase脱机数据库

周和安
2023-03-14

我的应用程序有一个目录,它使用Firebase来存储和更新数据。我想显示已经缓存的数据,如果应用程序被杀死,并再次启动,而不在线。

firebase是否在应用程序被终止时删除缓存?

无论用户在线或离线,我们都可以首先推送离线数据

共有2个答案

巢嘉志
2023-03-14

根据我对Slack Firebase社区的回答:

在使用任何引用调用数据之前,必须首先在数据库上设置PersistenceEnabled(true)。您的fetchData()方法在调用此函数之前运行,因此设置持久性将失败。您可以这样检查设置持久性是否成功:

bool _success = await globals.firebaseDatabase.setPersistenceEnabled(true);

您还应在设置持久性后运行此操作:

_success =
        await globals.firebaseDatabase.setPersistenceCacheSizeBytes(10000000);

创建数据库实例并设置持久性需要在应用程序中尽早完成...所以回到main.dart理想状态。(编辑)

热重新加载时,success bool将显示false,但这是因为持久性只能成功设置一次,并且是在应用程序最初加载时完成的。(编辑)

希望这能解决你的问题。

keepSynced(真/假)可以用于数据库的特定位,以确保特定引用始终是当前的。您可以根据需要打开和关闭此功能。KeepSync基本上只是添加了一个侦听器。如果您已经在为数据库的这些区域创建侦听器,则不需要保持同步。(编辑)

另外,上面代码中的“globals”只是对我的全局配置的引用。省道锉刀。

西门经国
2023-03-14

只要启用脱机模式,数据将缓存到磁盘,因此即使在应用程序被终止后,数据仍然可用。然后,当您再次在同一路径上侦听时,将检索数据,即使用户处于脱机状态。

对于实时数据库(我想这就是您所说的),持久性可用于Android和iOS。没有用于web的脱机持久性。

在Android上:

FirebaseDatabase.getInstance().setPersistenceEnabled(true);

在iOS上:

Database.database().isPersistenceEnabled = true
 类似资料:
  • 正如标题中所述,我正在使用Firebase实时数据库,并启用了持久性。

  • 我的问题可能看起来有点天真,但作为一个初学iOS开发人员,我开始认为核心数据可以被firebase实时数据库(或未来的firestore)替换。我在两个seperate项目中使用了它们,在firebase中激活离线特性后,我得到了相同的结果(即,数据被保存到设备中,而不需要internet连接)。我想我在firebase文档中读到了一些关于它不能同时过滤和排序的东西,这可能意味着核心数据可以更方便

  • 我在我的应用程序中使用的是react-本地Firebase。我面临的问题是如何处理用户离线时尝试推送数据时的用户界面更新。 如果用户在线,我们可以使用on()方法获得实时更新,但当他们离线时该怎么办。我们知道推送的数据存储在缓存中,并在用户再次在线时推送。这个缓存的数据可以用来做我的目标是实现什么? 以下是我用来接收实时更新的代码: 我用来推送数据的代码。 var postData={uid:ui

  • 问题内容: 我已经在中解析了JSON数据,现在想使其脱机使用。有没有一种方法可以将JSON数据保存在电话上,以便在电话离线时可以查看数据? 有人知道一个例子吗? 编辑现在可以使用: 问题答案: 您有两种方法。您可以创建一个数据库,然后将所有数据保存在那里,并在需要时将其取回。或者,如果您拥有的数据不是很多,并且您不想处理数据库,那么您可以将json字符串写入存储卡中的文本文件,并在离线时稍后阅读。

  • 主要内容:1.常见的脱敏场景,2.常用的脱敏技术方法去标识化:是指通过对个人信息的技术处理,使得在不借助额外信息的情况下,无法识别个人信息主体 匿名化:是指通过对个人信息的技术处理,使得个人信息主体无法被识别或关联,且处理后的信息不能被还原的过程 1.常见的脱敏场景 数据报告脱敏、应用系统脱敏、数据库脱敏。 静态(数据文件)脱敏 适用于批量进行脱敏数据。比如用于模型训练的测试数据,再比如数据的导出用于离线数据分析。 动态(数据库)脱敏 动态数据脱敏