Firestore-安全规则:是否在OR连接中多次读取,并且将“延迟”评估?

当我的规则如下时,我的问题是关于一个用例:

match /collection/{docID} {
    allow read,write,update : if isSomethingTrue();
    allow read: if request.auth.uid != null && isOnotherFunctionWithGETInside();
    allow create: if request.auth.uid != null;

}

如果我可以将阅读规则翻译为:

allow read: isSomethingTrue() || (request.auth.uid != null && isOnotherFunctionWithGETInside())

,如果是,如果isSomething()返回true,第二部分是否不执行?那么它将在惰性模式下评估吗?

这对我来说是一个重要的问题,因为如果我仅交换两个允许读取行的序列(因为第二个中的get()函数),那么账单(服务器读取操作)可能会有很大的不同阅读规则)。

谢谢。

yangongshang0812 回答:Firestore-安全规则:是否在OR连接中多次读取,并且将“延迟”评估?

您所描述的行为在编程语言中称为“短路”。是的,安全规则将使逻辑“或”短路,以避免评估表达式的其余部分。安全规则的API documentation for booleans中对此进行了说明。

本文链接:https://www.f2er.com/3078888.html

大家都在问