在第二种情况下,Firebase在第一种情况下会收取更多费用吗??
collection().get() // potentially retrieves infinite documents
collection().limit(smallerAmount).get() // only retrieve a smaller amount of documents
在documentation, there is some none billed traffic within GCP中,但是我不确定这是否适用于 Firestore 读取请求 。
我假设计费与我的客户对于云功能来说相同 ,并且通过get()
调用检索的文档越多,得到的收费。
答案 0 :(得分:1)
您的问题是问几个彼此之间没有真正联系的问题。
首先,文档读取与出口和入口不同。读取文档是简单地执行要求在Firestore中访问文档的查询的结果。它没有考虑发送该文档内容所需的网络数据量(称为出口)。
第二,出口仅通过从云服务传输的字节数来衡量。当数据停留在某个区域内时,可能不会向出口收取费用-文档将很清楚。出口与文档读取的计费无关。
第三,无论请求来自何处,文档读取都是收费的。将其视为使用Firestore索引快速进行查询的成本。它与出口无关,而与满足查询条件所必须触摸的文档数量有关。
第四,任何查询比其他查询读取更多文档,将花费更多。您只需为必须将文档内容传输到客户端的文档读取操作付费。
答案 1 :(得分:0)
是的,与第二种情况相比,第一种情况要收取更多钱。
如您所指的文档中所述(即https://firebase.google.com/docs/firestore/pricing#operations):
当您收听查询结果时,会向您收取阅读费用 每次添加或更新结果集中的文档时。你是 从结果集中删除文档时,也会收取读取费用 因为文档已更改。 (相反,当文档是 删除,则无需支付阅读费用。)
由于在第二种情况下结果集较小(因为您使用limit()
),因此将向结果集中添加更少的文档。
对于Cloud Functions读取Firestore数据的情况,如果Cloud Function的区域与Firestore所在的区域不同(并且不在同一多区域中),则您需要为地区。再次查看您引用的文档以及https://firebase.google.com/docs/functions/locations#selecting_regions_for_firestore_and_storage
更新,来自下面的评论
有关Cloud Functions和Firestore之间的连接:
一个区域内的出口->免费,同一多区域内的区域之间的出口->免费,区域之间的出口(同一多区域内的NOT)->不是免费的,如果美国与美国之间价格不同。有关各个区域的详细信息,请参见https://firebase.google.com/docs/functions/locations#selecting_regions_for_firestore_and_storage底部的表格
请注意,目前,对于Firestore,唯一可用的多区域位置是我们中心,请参见https://firebase.google.com/docs/firestore/locations