使用 exists() 的 Cloud Firestore 规则是不是算作读取?
Posted
技术标签:
【中文标题】使用 exists() 的 Cloud Firestore 规则是不是算作读取?【英文标题】:Cloud firestore rules using exist() does it count as a read?使用 exists() 的 Cloud Firestore 规则是否算作读取? 【发布时间】:2019-03-20 09:21:34 【问题描述】:我正在存储被阻止用户的文档集合。 我正在通过检查电子邮件是否存在于被阻止的集合中来检查请求是否来自被阻止的用户
allow read: if exists(/databases/$(database)/documents/blocked/$(request.auth.token.email)) == false;
检查文档是否存在算作读取?
【问题讨论】:
【参考方案1】:是的,exists()
计入您的账单。它们还计入max number of reads you can perform per request。
【讨论】:
如果我使用 get() 但文档不存在怎么办。这也算作一次阅读吗? 是的,所有查询都至少需要读取一次。您需要支付咨询收藏索引的费用,这可能是巨大的。 这意味着检查被阻止的用户每次遇到规则时都会花费额外的阅读费用。这是要阅读的内容。存储被阻止用户并确保他们无权访问的最佳方式是什么?因为如果我检查此人是否在每次阅读时都被阻止,那将使阅读次数增加一倍。 如果你想要动态的东西,别无选择。您必须为阅读付费。 嗯,我正在考虑使用自定义声明。这不算读对吧?以上是关于使用 exists() 的 Cloud Firestore 规则是不是算作读取?的主要内容,如果未能解决你的问题,请参考以下文章
英语we’re sparking wild fires怎么翻译?
大型集合的 Firestore DeadlineExceeded 异常