Firebase Firestore:规则过滤读取计数

时间:2019-11-14 22:33:35

标签: firebase google-cloud-firestore firebase-security

如果我有10,000条记录,其中5条有我的电子邮件,并且我的规则是

allow read: if (resource.email == auth.token.email);

每次我直接阅读db.collection('x')时,我都会得到5个文档的结果:

我会为 5 10,000 的读物收费吗?

2 个答案:

答案 0 :(得分:2)

规则不限制读取的内容。只有代码中的查询才能做到这一点。

如果您的查询仅读取在其email字段中具有您的电子邮件地址的5个文档,则将向您收取这5个文档的费用。

答案 1 :(得分:2)

对于未传输给客户端的文档,您无需付费。如果您的查询返回X个文档,您将被收取X次阅读费用。安全规则不会改变这一事实。

您还应该注意security rules are not filters(请阅读并理解该链接)。来自网络或移动客户端的任何查询都是全部或全部。如果安全规则不只请求规则会满足的文档,它将拒绝对查询的访问。规则不会检查每个文档是否符合规则-根本无法缩放。您的查询需要包含与规则要检查的内容匹配的过滤器。