Firebase 安全规则:如果用户 uid 作为文档存在于集合中则允许
Firebase Security Rules: Allow if user uid exists in a collection as a document
我正在收集我的管理员用户 uid 作为“管理员”集合中的文档。如果用户在该集合中有他们的 uid 作为文档,我想让用户阅读。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /admins/{document=**} {
allow write; // Everyone should be able to write
allow read: if request.auth.uid == ; // Only read if /admins/{youruid}
}
}
}
您可以使用 exists()
检查文档是否存在。尝试重构您的规则,如下所示:
match /admins/{document=**} {
allow read: if exists(/databases/$(database)/documents/admins/$(request.auth.uid));
// Only read if /admins/{youruid}
}
您可以在 documentation 中阅读有关 exists()
的更多信息。
我正在收集我的管理员用户 uid 作为“管理员”集合中的文档。如果用户在该集合中有他们的 uid 作为文档,我想让用户阅读。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /admins/{document=**} {
allow write; // Everyone should be able to write
allow read: if request.auth.uid == ; // Only read if /admins/{youruid}
}
}
}
您可以使用 exists()
检查文档是否存在。尝试重构您的规则,如下所示:
match /admins/{document=**} {
allow read: if exists(/databases/$(database)/documents/admins/$(request.auth.uid));
// Only read if /admins/{youruid}
}
您可以在 documentation 中阅读有关 exists()
的更多信息。