firebase 从 firestore js sdk 缓存检索文档是否收费

2023-12-11

  • 我正在使用 firebase JS SDK,离线持久化已启用。这会自动将我检索到的文档缓存在 JS SDK 中。
  • 我执行这个查询:
// once
firebase.firestore().doc('path/to/doc').get()
// twice
firebase.firestore().doc('path/to/doc').get()

我的问题是:

  1. Firebase 会向我收取两次阅读此案例的费用吗启用离线持久化。因为我相信第二次读取将来自离线缓存而不进行网络调用?
  2. Firebase 会向我收费吗once or twice when 离线持久化已禁用?

我的用例

用户打开一个网络应用程序,其中包含来自客户端的“任务”。
每个任务都有一个client带有文档参考的字段。

  1. 检索所有任务(例如 500 次读取)
  2. 检索每个任务的每个客户文档(即使某些客户相同,也会读取另外 500 个文档)

So 如果只有 20 个客户,当用户打开应用程序时,我宁愿只有 520 次读取,而不是 1000 次读取。

是否最好重新设计我的数据结构,将相关客户端信息保存在任务本身而不是引用上,或者 Firebase JS SDK 是否足够智能,不会重复检索刚刚检索到的相同文档。


PS:我在这里发现了类似的问题:

Firestore 是否对每次检索的文档的 Cloud Function Get 读取收费?

但它只是没有我正在寻找的确切信息。


firebase 从 firestore js sdk 缓存检索文档是否收费?

不,没有。如果从本地缓存完成读取,则不会按服务器端读取收费。

但是你的代码有两个get calls:

// once
firebase.firestore().doc('path/to/doc').get()
// twice
firebase.firestore().doc('path/to/doc').get()

在这种情况下,Firestore 客户端无法知道文档在这两次调用之间是否发生了更改。所以它必须调用服务器来确定文档是否被更改,这是(或至少may be)收费阅读。

如果您需要了解应用程序中执行时间接近的多个位置中的文档的当前状态,您应该保留一个onSnapshot该文档的侦听器。这确保了本地缓存始终以最小的成本保持最新。

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

firebase 从 firestore js sdk 缓存检索文档是否收费 的相关文章

随机推荐

  • MvcMailer:无法在使用 Url.Action 的 Razor 视图上完成 NUnit 测试

    这是我的问题 我正在使用Mvc邮件程序使用 Razor 语法创建格式良好的电子邮件 它是一个很棒的工具 我遇到的问题是这样的 这是我发送的一封电子邮件的视图中的一些语法 p Click here to return to a href Ur
  • 如何检查 iOS 上的 React Native 应用程序的网络流量?

    I m using the latest React Native 0 18 at the time of this writing and would like to inspect the network requests my iOS
  • 在一个 Android 应用上接收来自两个 Firebase 项目的推送通知

    我有一个 Android 应用程序 我希望它能够接收来自两个不同 Firebase 项目的推送通知 我阅读了博客 在 Android 应用程序中使用多个 Firebase 项目 https firebase googleblog com 2
  • 如何在Java中获取给定类的数组类?

    我有一个Class保存某种类型的变量 我需要获取一个保存相应数组类的变量 我能想到的最好的办法是 Class arrayOfFooClass java lang reflect Array newInstance fooClass 0 ge
  • Video.play 返回 DirectShowPlayerService::doSetUrlSource:未解决的错误代码 800c000d

    使用 Qt 版本 5 4 2 返回的错误代码 DirectShowPlayerService doSetUrlSource 未解决的错误代码 800c000d 已使用视频 QML 类型编写了 QML 文件 如下所示 我在项目文件 pro 中
  • 使用带有泛型的语句:using ISet<> = System.Collections.Generic.ISet<>

    由于我使用两个不同的通用集合命名空间 System Collections Generic and Iesi Collections Generic 我有冲突 在项目的其他部分 我同时使用 nunit 和 mstest 框架 但当我调用时限
  • 为什么这个汇编程序会输出相同的字符串两次?

    此凯撒密码程序生成解密字符串 长度始终为 10 并输出为 output txt 文件 例如下面的代码创建 txt 文件 ILIKEASSEM HOWAREYOUU 但是当我运行这段代码时 该文件是 ILIKEASSEM ILIKEASSEM
  • 除以零后的余数

    我知道数学中不允许除以零 但是我可以使用零模吗 我应该得到什么答案 例如 10 0 5 0 标准将其定义为 未定义 在几乎所有处理器中 求模都是通过与除法相同的功能来执行的 在现代较大的处理器中 它是一条指令 例如 x86 大多数情况下 该
  • CSS 选择器中的空格

    在选择器中 空格可以指示后代 不过 我发现空格也可以忽略 根据我的测试 这就是我的think它的意思是 周围可以使用空格 和上下文字符 例如 and gt 空格可能not用于伪类和元素字符 and 以及属性选择器 空格可能not与类和 id
  • 链接服务器 SQLNCLI 问题。 “没有活跃的交易”

    我尝试执行存储过程并将其结果简单地插入到临时表中 并且收到以下消息 无法执行该操作 因为 OLE DB 提供程序 SQLNCLI 对于链接服务器 MyServerName 无法开始分布式 交易 用于链接服务器的 OLE DB 提供程序 SQ
  • 使用 CSS 无限移动多个背景

    我有两个背景 body background image url img nemo png url img ocean png 我该如何制作nemo png background左右无限移动但不影响ocean png background
  • 如何使用外部 CSS 覆盖内联样式?

    我有使用内联样式的标记 但我无权更改此标记 如何仅使用 CSS 覆盖文档中的内联样式 我不想使用 jQuery 或 JavaScript HTML div style font size 18px color red Hello World
  • 报告长期运行的 Celery 任务的结果

    Problem 我已将长时间运行的任务分割为逻辑子任务 因此我可以在每个子任务完成时报告其结果 然而 我试图报告一项实际上永远不会完成的任务的结果 而不是在进行过程中产生值 并且正在努力使用我现有的解决方案来做到这一点 背景 我正在为我编写
  • 如何在满足给定条件时终止Python中的多进程? [复制]

    这个问题在这里已经有答案了 假设我有这个功能 def f while True x generate something if x condition return x if name main p Pool 4 我想在多进程中运行此函数
  • 使用clone()和printf的段错误

    我正在尝试如何clone 在 Linux 3 10 0 327 3 1 el7 x86 64 中为线程实现 我正在运行这段代码 偶尔会出现段错误 我知道如果我使用CLONE THREAD那么就没有办法检查线程是否完成 但是为什么printf
  • 如何让列表视图只显示3个项目

    我有一个列表视图 其中正在加载 10 个项目 我希望滚动时只显示 3 个项目 我不想通过调整列表高度来做到这一点 即使滚动很小 意味着没有项目应该部分显示 我也只想显示 3 个项目 如何实现这一目标 提前致谢 我将发布一个代码 我用它来填充
  • Android ListActivity行点击

    我有一个显示有关玩家的信息的活动 这部分工作正常 我使用了适配器 但是我应该将检测行何时被单击的代码放在哪里 PlayersActivity java package com democratandchronicle billstraini
  • 保存自定义首选项的值

    我创建了一个新的首选项 它直接延伸自CheckboxPreference 在这个类中我添加了一个简单的新boolean价值 我现在的问题是如何存储这个新值 如果用户点击正常CheckboxPreference该值自动存储在首选项中 我希望这
  • 图例与饼图重叠

    在 python 中使用 matplotlib 图例与我的饼图重叠 尝试了 loc 的各种选项 例如 最佳 1 2 3 但无济于事 关于如何准确提及图例位置 例如从饼图边界给出填充 或至少确保它不重叠有什么建议吗 简短的回答是 您可以使用p
  • firebase 从 firestore js sdk 缓存检索文档是否收费

    我正在使用 firebase JS SDK 离线持久化已启用 这会自动将我检索到的文档缓存在 JS SDK 中 我执行这个查询 once firebase firestore doc path to doc get twice fireba