仅当 ID 已知时才允许读取文档
Only allow document to be read if ID is known
我有一个名为 proposals
的集合,我想禁用它的列表并仅在用户知道 ID 时才允许获取。
Firebase 可以吗?
我目前失败了,因为允许“阅读”,但没有这个我无法阅读文档。
match /proposals/{uid} {
allow list, update, delete: if false;
allow create, read: if true;
}
进行这种授权很常见,是的,这是可能的。
Firestore 安全规则向我们提供 request.auth.uid
,其中包含发出请求的用户的 UID,如果未经身份验证则为 null。
因此,您可以将该信息与相等运算符一起使用:
match /proposals/{uid} {
allow list, update, delete: if false;
// Allow getting Documents if the Document ID is equal to the currently uid of the authenticated user who is making the request.
allow get: if request.auth.uid != null && request.auth.uid == uid;
allow create;
}
您应该使用 get
来定义当任何用户试图获取文档 时将应用的规则。请注意 read
适用于 任何类型的读取请求 ,其中包括 get
和 list
.
有关安全规则和身份验证的更多信息:https://firebase.google.com/docs/rules/rules-and-auth
我有一个名为 proposals
的集合,我想禁用它的列表并仅在用户知道 ID 时才允许获取。
Firebase 可以吗?
我目前失败了,因为允许“阅读”,但没有这个我无法阅读文档。
match /proposals/{uid} {
allow list, update, delete: if false;
allow create, read: if true;
}
进行这种授权很常见,是的,这是可能的。
Firestore 安全规则向我们提供 request.auth.uid
,其中包含发出请求的用户的 UID,如果未经身份验证则为 null。
因此,您可以将该信息与相等运算符一起使用:
match /proposals/{uid} {
allow list, update, delete: if false;
// Allow getting Documents if the Document ID is equal to the currently uid of the authenticated user who is making the request.
allow get: if request.auth.uid != null && request.auth.uid == uid;
allow create;
}
您应该使用 get
来定义当任何用户试图获取文档 时将应用的规则。请注意 read
适用于 任何类型的读取请求 ,其中包括 get
和 list
.
有关安全规则和身份验证的更多信息:https://firebase.google.com/docs/rules/rules-and-auth