Firestore安全规则多次调用get()是否重复计算读次数及优化方法
两次get()调用是否会被统计为2次读操作?
会。Firebase安全规则不会自动缓存同路径的get()调用结果,你代码里的两次独立get(path)调用会被统计为2次文档读操作,会产生对应次数的费用。
仅调用一次get()的优化写法
你可以通过安全规则支持的let关键字声明临时变量,缓存单次get()的返回结果复用,仅产生1次读计数,等价逻辑的代码写法如下:
allow read: let targetDoc = get(path).data; !targetDoc || targetDoc.value !== 'xyz';
上面的写法逻辑和你原有规则完全一致:如果目标文档不存在,或文档存在但value字段取值不等于xyz时,允许读操作。
内容的提问来源于stack exchange,提问作者Tapas Mukherjee
相关产品推荐
相关产品推荐

