【发布时间】:2018-03-05 15:50:55
【问题描述】:
我想向 Firestore 数据库 (Firebase) 发送一些信息,最好以键值对的形式(但不一定),以便它可以使用它来评估其规则中的访问权限(读取和写入时)。
但是,我不希望此信息成为路径的一部分。
例如,假设我有一些passParameters 方法:
DocumentReference docRef =
db.collection("cities")
.document("SF")
.passParameters("abc", 123);
然后我可以在编写规则时访问此信息,如下所示:
service cloud.firestore {
match /databases/{database}/documents/cities/SF/ {
allow read, write: if request.parameters.abc == 123;
}
}
请注意,以上只是一个例子。现实生活中的用例更为复杂。换句话说,不要过多关注示例本身,而是回答更通用的问题:有没有办法将信息传递给不属于路径的安全规则?
【问题讨论】:
-
您最终找到解决方案了吗?我正在尝试实现类似的东西,但我的用户不需要经过身份验证。安全性对于这个用例也不重要
-
@MichaelB Firestore 规则仅对安全性很重要。他们不过滤结果。他们只能拒绝访问。
-
我并没有尝试过滤结果,只需要一个参数,我可以通过编程方式附加到对 firebase 的请求,而无需对用户进行身份验证——因此不能在身份验证令牌中使用自定义 clains。
标签: firebase google-cloud-firestore firebase-security