firebase Firestore 文档已读取
Posted
技术标签:
【中文标题】firebase Firestore 文档已读取【英文标题】:firebase Firestore document read 【发布时间】:2021-11-18 00:36:46 【问题描述】:我正在使用 google cloud FireStore 作为我们电子商务移动应用程序的数据库。当我们从云 Firestore 检索文档时,我对 Firestore 文档的文档读取计数感到有点困惑。
firebase 文档的位置:users/123/ 该文档包含用户信息,如 userId、userName、wishlist、cart、地址等。 我使用多个子地图将所有用户数据保存在一个文档中,以降低 Firestore 计费成本。 文件结构:
userId:"123",
userName:"Sunil",
addresses :
address1 :
"doorNo":"123",
"city" : "Bengaluru"
,
address2 :
"doorNo":"456",
"city" : "Bengaluru"
,
address3 :
"doorNo":"789",
"city" : "Bengaluru"
,
wishlistItems:
item1 :
"itemId":"1"
,
item2 :
"itemId":"2"
,
item3 :
"itemId":"3"
,
item4 :
"itemId":"4"
,
,
cartItems:
cartItem1:
"itemId":"1",
"itemCount":"2",
,
cartItem2:
"itemId":"2",
"itemCount":"5",
,
cartItem3:
"itemId":"3",
"itemCount":"7",
,
cartItem1:
"itemId":"4",
"itemCount":"8",
,
,
,
我检索文档如下: firestore().collection("users").doc("123").get();
我的问题: 每次检索将计算多少次读取? 它会只有一个,因为我只检索一个文档还是 12 个(因为该文档有 11 个子图和 1 个作为正常计数)?
请帮我弄清楚这一点。提前谢谢你。
【问题讨论】:
【参考方案1】:由于您正在阅读单个文档中的所有内容,因此将其计为 1 次阅读。
【讨论】:
首先,我要感谢您抽出时间回复此问题。您的回复确实帮助我正确理解了计费标准。 我的另一个问题是,我们可以在单个文档中添加多少个键值对。谢谢。【参考方案2】:根据您在结果中返回的文档数收费,不考虑内容。
firestore().collection("users").doc("123").get();
上述读取将只花费 1 次读取(如果文档存在,也是如此)。
firestore().collection("users").where("age", ">=", 10).get();
例如,在上面的查询中,如果匹配并返回了 57 个文档,那么您将被收取 57 次读取的费用。
如果您启用了离线持久性并且从缓存中读取了一些文档,则您无需为它们付费。
【讨论】:
首先,我要感谢您抽出时间回复此问题。您的回复对我很有帮助,希望对其他人也有帮助,以了解 Firestore 计费费用。 @I'mSunil3 不客气。只要总大小低于 1 MB,您可以在文档中添加多少个键值对并没有限制 @Dharmaraj 如果 OP 启用了离线持久性,这是 Cloud Firestore 中的默认设置,那么他将只能在离线时读取缓存。当 OP 有互联网连接时,它将始终读取文档的在线版本。以上是关于firebase Firestore 文档已读取的主要内容,如果未能解决你的问题,请参考以下文章