首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Firestore查询流与get的区别?

问Firestore查询流与get的区别?
EN

Stack Overflow用户
提问于 2018-05-04 12:22:48
回答 1查看 8.1K关注 0票数 15

我计划使用NodeJS api从Firestore数据库中查询大量数据。使用流api (https://cloud.google.com/nodejs/docs/reference/firestore/0.13.x/Query?#stream)而不是正则查询get (https://cloud.google.com/nodejs/docs/reference/firestore/0.13.x/Query?#get)有什么好处吗?

我的印象是流在内存消耗方面更有效率。

我的查询环境是Firebase函数。

EN

回答 1

Stack Overflow用户

发布于 2021-01-28 17:07:14

是的,在stream之上使用get将减少云功能的内存消耗!我亲身体验过:当我用流替换get时,我的函数内存从1GB变为200 my。

要提供更多细节:使用Node.js Admin,为了访问您的数据:

  • 首先定义一个查询:指定一个集合并添加where、offset、limit、startAfter,以更精确地描述所需的数据。如果不添加任何说明符,则需要查询整个集合。
  • 然后通过以下三个函数之一获取相应的结果:
    • 到达,它返回包含与查询匹配的所有文档的快照(如果不限制查询,则返回整个集合)。如果您不想破坏您的内存,您绝对需要为查询添加一个限制子句。
    • 流,它为您提供了一个Node.js可读的流。您可以使用这个流,它一个一个地提供文档,因此它对您的内存很好。
    • onSnapshot,它创建一个侦听器,它将为您提供与查询匹配的文档。我注意到它发送了所有文档的初始大批,然后在创建文档时发送文档。这样你的记忆就会爆炸,你不知道什么时候该停止监听,所以我不会在云函数中使用它(但我真的很喜欢客户端,另一个故事)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50174885

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档