如何缓存 Firebase 数据以供离线使用?

2023-12-10

我构建了捆绑 JSON 数据的应用程序。我想切换到 Firebase 作为后端,但我需要确保即使 Firebase 离线也可以访问数据。无法保证用户在启动应用程序时能够连接到互联网。数据由相当大的 JSON blob 组成。

我听说 firebase 确实在 iOS 上缓存数据以供离线访问,这很棒。我只需要知道如何在应用程序第一次运行时捆绑数据,以便用户可以在获得网络连接之前使用该应用程序。


正如您所发现的那样,Firebase Obj-C 客户端确实具有对离线访问/磁盘持久性的测试版支持。详情可查here.

但这并不能满足您使用初始数据“播种”应用程序的愿望,以便在应用程序能够连接到 Firebase 之前就拥有可用的数据。不幸的是,没有对此的直接支持。

您可以使用 Firebase 尝试的一种巧妙解决方案是仅对相关数据执行 setValue 操作,以便为缓存提供种子。这应该可行,但最终会在应用程序连接时尝试将该数据写入 Firebase,因此您可能希望制定安全规则来防止用户实际修改该数据。正如我所说,这将是一个棘手的解决方案。

目前,最好在您的应用程序中使用特殊逻辑来处理此问题,该逻辑从其他数据源(硬编码值或嵌入文件等)提取数据,直到您第一次从 Firebase 获取数据。

抱歉,目前没有对此的直接支持。我们将看看将来是否可以更直接地支持这一点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何缓存 Firebase 数据以供离线使用? 的相关文章

  • 如何将十六进制数组转换为 UIImage?

    有几个与使用 P25mi 动态打印图像相关的未解答问题 没有一个得到公认的答案 下面有几个链接 如何将图像转换为位图代码以便在 iPhone 中进行蓝牙打印 https stackoverflow com questions 1383828
  • swift 中的负数模

    负数模如何在 swift 中工作 当我执行 1 3 时 它给出 1 但余数是 2 其中有什么问题 雨燕余数运算符 计算余数 整数除法 a b a a b b where 是截断整数除法 在你的情况下 1 3 1 1 3 3 1 0 3 1
  • Firebase 云消息传递 (FCM) 令牌是否独一无二?

    我在 firebase 文档中找不到任何地方表明收到的令牌是唯一的 如果有人能指出我这样的地方 我将不胜感激 主要问题 我应该在数据库中为此类标记设置唯一约束吗 谢谢 根据文档 它们是唯一的 但您无法将它们绑定到特定设备 因为它们可能会发生
  • 打印附加结构(swift 4)

    我有三个 textifled 用于将数据附加到结构中 如何打印我附加的内容 现在我收到一条错误消息 import UIKit class ViewController UIViewController IBOutlet var c UITe
  • 手动启用时 Firebase Crashlytics 不报告崩溃

    Crashlytics 在没有选择加入报告的情况下也能正常工作 但一旦我根据规定设置了选择加入报告 它就会停止报告任何内容tutorial https firebase google com docs crashlytics customi
  • Cognito/IAM 策略和 S3 获取对象

    我正在尝试将 S3 和 Cognito 集成到我的 iOS 应用程序中 但到目前为止尚未成功 我相信该错误与我针对 Auth 和 Unauth 用户的 IAM 策略有关 所以这是我的政策 Version 2012 10 17 Stateme
  • 如何在ios中以编程方式添加水平间距和垂直间距?

    我在 ios 8 中创建了一个应用程序 因为我有 4 个可垂直使用的标签 它应该在某些条件下更改位置 所以我已禁用自动布局并以编程方式设置约束 现在的问题是 我可以设置水平和垂直位置 宽度和高度的约束 但我找不到任何方法来添加标签之间的水平
  • 是否可以将 Cypress e2e 测试与 firebase auth 项目结合使用?

    我正在探索 Cypress 进行 e2e 测试 看起来是很棒的软件 问题在于身份验证 Cypress 文档解释了为什么使用 UI 非常糟糕here https docs cypress io guides getting started t
  • XCode 调试 - 我可以绕过反汇编代码的单步执行吗

    调试项目时 在 XCode 中设置断点后 我将开始单步执行代码 然后我会遇到反汇编代码 我认为这些代码是对没有可用源代码的各种框架的调用 这是一个正确的假设吗 有没有一种方法 可能通过我尚未找到的项目设置 来抑制此汇编代码的显示 而不必单步
  • 我无法捕获 WKWebView 的屏幕截图

    我正在尝试捕获 WKWebView 的屏幕截图 但我的方法无法正常工作 它返回纯色 就好像图层树为空一样 而它似乎适用于其他视图 UIImage screenshot UIImage screenshot UIGraphicsBeginIm
  • 错误 ITMS-9000 iTunes Connect

    我正在尝试上传一个phonegap build iOS应用程序到应用程序商店 我不断收到此错误 ERROR ITMS 9000 Missing Code Signing Entitlements No entitlements found
  • 在两个数字之间设置 UILabel 文本动画?

    我是 iPhone 和 Mac 编程新手 之前为 Windows 开发过 我有一个问题 我如何制作动画text的财产UILabel两个数字之间 例如从5 to 80以 Ease Out 风格 是否可以与CoreAnimation 我已经在谷
  • 将应用转移到另一个 Firebase 帐户

    我的个人 Firebase 帐户下有一些应用程序用于测试 但现在需要将应用程序转移到客户的帐户以进行计费 这可能吗 Thanks 我最近将一个项目的所有权转移到另一个帐户 您所要做的就是 转到 Firebase 控制台 然后选择要转移的项目
  • 在 iOS 上的 SceneKit 中导入 3d 模型

    从 URL 导入 obj 文件并将其转换为 SCNNode 时遇到问题 这是代码 swift3 let url URL init string https cloud box com shared static ock9d81kakj91d
  • 集合组查询是否需要{path=**}?

    我通读了集合组查询文档 https firebase google com docs firestore security rules query secure and query documents based on collection
  • 删除部分(红色删除按钮),UITableViewController - iOS

    我正在尝试做一个分组的 uitableview 并且我已经激活了编辑选项 我希望用户也能够删除整个部分 而不仅仅是特定行 因此 当您单击 编辑 时 每个表格单元格左侧显示的红色减号按钮也应该显示在各个部分 部分标题左侧 有人知道如何做到这一
  • UIWebView 如何检测 被点击

    我知道下面的方法可以检测链接元素点击 但我想知道是否UIView可以检测是否img元素被点击 BOOL webView UIWebView webView shouldStartLoadWithRequest NSURLRequest re
  • 后台模式下的 AVSpeechSynthesizer

    我无法获取 iOS 7AVSpeechSynthesizer当我的 iOS 应用程序处于后台模式时工作 我添加了 应用程序播放音频 应用程序支持的后台模式的关键 但我仍然无法让它工作 我还研究了创建一个AVMutableCompositio
  • 应用程序关闭时单击 Firebase 通知后打开特定活动/片段

    我知道这个问题似乎重复 但根据我的要求 我在网上搜索了很多帖子 但没有任何对我有用 我的要求 我正在使用 Firebase 来获取推送通知 当应用程序打开时意味着一切正常 但我的问题是 如果有任何推送通知出现 应用程序处于后台 关闭意味着我
  • HTML5 地理定位 - 在 iOS 上无法始终工作

    目前正在使用 HTML5 地理定位 我已经在所有网络浏览器上测试了它 它似乎工作正常 然而 当我在 iPad 上测试地理定位时 它在 iPad mini 上始终有效 但当我将其放在更大的 iPad iPad 2 上时 位置似乎并不总是有效

随机推荐

  • MS Excel - 使用分隔符连接

    我有一个很长的电子表格 里面有数字 我需要将它们放在一个由 分隔的字符串中 例如 4364453 24332432 2342432 我知道我能做到 concat A1 A2000 但这会将其合并到一个没有分隔符的字符串中 当您指定范围时 我
  • 匹配由一个或多个单行注释组成的多行注释块

    我需要一个正则表达式来匹配由一个或多个单行注释组成的注释块 单行评论 This is a single line comment 由多个单行评论组成的评论块 This is a multiple line comment which is
  • 在 Java 连接到主机后如何读取 SSH 密钥签名对横幅(用于生成 SSH 密码)?

    我想在连接到 java 中的远程主机后读取 SSH 密钥签名对横幅 用于生成 SSH 密码 我正在使用 JSch 客户端库进行 SSH 连接 在主机上进行某些操作后 SSH 密码会发生变化 因此每次我都需要从密钥签名对生成新的 SSH 密码
  • 在 LibGDX 中实现梯形精灵

    我正在尝试为一个简单的 2D 游戏创建一个程序动画引擎 这将使我可以用少量图像创建漂亮的动画 与此方法类似 但对于 2D http www gdcvault com play 1020583 Animation Bootcamp An In
  • AJAX - 使用 POST 而不是 GET

    到目前为止我一直在使用 xmlhttp open GET server script php q str true Thanks 编辑 我正在为可能遇到此页面的任何人提供一个解决方案 以演示如何使用 POST 而不是 GET 如果您是 AJ
  • 类型错误:_app2.default.database 不是函数。 (在'_app2.default.database()'中,'_app2.default.database'未定义)

    这个错误很奇怪 firebase中的react native有什么问题 我已经通过 npm install 安装了 firebase 这是我的代码 import React Component from react import View
  • 关于如何立体校准和校正 OpenCV 的简单解决方案?

    我已经研究这个话题近一周了 但还没有找到任何可靠的解决方案 有趣的是 从来没有人发布过直截了当关于如何使用 OpenCV 校准和校正立体相机以计算深度的解决方案 从这里到那里 this用于校准和this为了纠正 虽然发布的代码不太完整 我想
  • 是否可以从 FILE* 中拯救文件描述符?

    我必须使用某个通过的跨平台库FILE 周围的物体 我从另一个源 继承 获取文件描述符 我想保留same fd across forkd 进程 我目前使用fdopen将文件描述符转换为FILE object 我的问题是fclose用于清理FI
  • 使用NMAKE将所有源代码制作到目录中?

    使用nmake 是否可以让makefile自动构建当前目录中的所有 cpp文件 而不必单独指定它们 所以 而不是像这样 O OBJ DIR main obj SOURCE DIR cpp OBJ DIR obj COMPILE lt HER
  • 捕捉到最近的标记

    我正在使用 GoogleMaps 并且我有 2 个或更多标记 并且它们是可拖动的 我想捕捉 2 个标记 如果它们靠近 并将它们合并为 1 个 这可能吗 有人可以给我指点吗 我怎样才能意识到这一点 你需要处理拖动事件 on the GMark
  • NSWindow 关闭并重新打开后崩溃

    我创建了一个 NSWindow self storeWindow NSWindow alloc initWithContentRect NSMakeRect 100 100 800 660 styleMask NSWindowStyleMa
  • 在 Xcode 4.5 中,“C++ 标准库”和“C++ 语言方言”的“默认编译器”是什么?

    Xcode 4 5 中 C 标准库 和 C 语言方言 的 编译器默认值 的值是多少 我的猜测是 libstdc 和 GNU 98 但最好能澄清一下 来自Xcode 4 5 发行说明 使用此 Xcode 版本创建的项目使用新的 libc 标准
  • 在 Java 中使用 Apache POI 生成文档间超链接

    我正在使用 Apache POI 生成 XWPFDocument 在此之前从未使用过它 并且我想将同一个 docx 文档中的一个段落链接到另一个段落 使用 POI 的本机功能是否可以实现这一点 或者我是否需要深入研究 XML Bean 包装
  • 正则表达式 - 返回名字和姓氏

    我正在寻找最可靠的方法返回给定全名的人的名字和姓氏 到目前为止我能想到的最好的是以下正则表达式 name preg replace b p L b b p L b i 1 2 name 预期的输出应该是这样的 William gt Will
  • 使用camel-redis设置redis键/值

    我想使用camel redis 设置键 值对 我尝试 spring redis localhost 6379 command SET CamelRedis key testkey CamelRedis value 100 但没有喜悦 我收到
  • winapi CreateWindowEx -> 创建具有用户系统样式的按钮?

    我想制作一个看起来像 我的电脑 gt 帮助 gt 关于 Windows 时的 确定 按钮的按钮 我正在创建一个像这样的按钮 hButton CreateWindowEx WS EX CLIENTEDGE TEXT BUTTON TEXT T
  • PHP 根据类名解析 HTML 行

    如何获取具有特定类名的所有行 例如 tr class dailyeventtext valign top 然后将该行中的每个单元格放入一个数组中 我使用 cURL 从客户端服务器获取页面 matches array dom new DOMD
  • iOS:如何使用滑块设置自定义背景颜色?

    首先 我想说我在这个网站上看到了一些关于如何做到这一点的帖子 尽管似乎没有一个对我有用 所以请不要关闭它 直到我让它工作 我想要做的是使视图的背景根据滑块的值而变化 以便用户可以选择他们想要的背景颜色 self gt colorView b
  • Asp Core 3.1 API JsonIgnore(不)在反序列化中被忽略

    我有这个设置 Asp 核心 3 1 API 在 API 和客户端之间发送的具有 MyClass 的共享库 带有 Com 类的客户端应用程序 On the MyClass他们之间发送的我有一个字段ComField引用 com 类 这仅在客户端
  • 如何缓存 Firebase 数据以供离线使用?

    我构建了捆绑 JSON 数据的应用程序 我想切换到 Firebase 作为后端 但我需要确保即使 Firebase 离线也可以访问数据 无法保证用户在启动应用程序时能够连接到互联网 数据由相当大的 JSON blob 组成 我听说 fire