gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:20:02 25 4
gpt4 key购买 nike

  • 我正在使用 firebase JS SDK,带有 offline persistence启用。这将自动将我检索到的文档缓存在 JS SDK 中。
  • 我执行这个查询:

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

    我的问题是:
  • Firebase 是否会向我收取两次读取的费用 启用离线持久化 .因为我相信第二次读取将来自离线缓存而不进行网络调用?
  • 时,Firebase 会向我收取一两次费用吗?离线持久化被禁用 ?

  • 我的用例

    用户打开一个带有来自客户的“任务”的网络应用程序。
    每个任务都有一个 client带有文档引用的字段。
  • 检索所有任务(例如 500 次读取)
  • 检索每个任务的每个客户端文档(即使某些客户端相同,也要读取 500 次)

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

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

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

    Does Firestore charge Cloud Function Get reads per retrieved documents?

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

    最佳答案

    does firebase charge for retrieving docs from firestore js sdk cache?



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

    但是你的代码有两个 get调用:

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


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

    如果您需要知道应用程序中多个位置彼此靠近执行的文档的当前状态(时间方面),您应该保留 onSnapshot该文件的听众。这确保本地缓存始终以最低成本保持最新状态。

    关于firebase - 从 firestore js sdk 缓存中检索文档的 firebase 是否收费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55202782/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com