Firestore规则可以有例外吗



我希望允许经过身份验证的读/写与/users/{userid}/{document=**}相匹配,即/users/userid下的所有文档,除了/users/{userid}/account-info/{document=**},后者是仅适用于管理员的特权区域。这可能吗?

当您使用像/users/{userid}/{document=**}这样的通配符来提供对文档层次结构的访问时,不可能使用其他规则来拒绝对其中一个文档的访问。对于安全规则,如果任何规则都允许访问文档,则该访问是永久性的,不能被覆盖。我建议阅读关于重叠匹配语句的文档。

如果您想禁止访问名为"的子集合;账户信息";,那么您将不得不编写规则,只允许访问其他每个子集合,并省略";账户信息";总共

您可能还想考虑将子集合分组为";"公共";以及";私人的";分组,以便更容易应用不同的规则。例如:

/users-public/{userid}/{document=**}
/users-private/{userid}/{document=**}

然后根据它们的顶级集合编写不同的规则来保护它们。

最新更新