如何在 Firebase 安全规则中访问我的数据字段
How to access my data field in Firebase Security Rules
安全规则
我正在尝试根据文档字段授予权限:
match /users/{user}/{documents=**} {
allow read, write: if resource.data.uid == request.auth.uid
}
Firebase 查询
我的查询如下所示:
query(collection(db, "users", match.params.uid, "promotors"));
错误信息
但我不断收到这条消息:
FirebaseError: Missing or insufficient permissions.
您的查询未以任何方式检查文档字段中的数据,因此它永远不会满足您的这部分规则:resource.data.uid
.
相反,您似乎遇到的是文档 ID 与用户的 UID 匹配的情况,您可以通过以下方式检查:
match /users/{user}/{documents=**} {
allow read, write: if user == request.auth.uid
}
另请参阅 content owner only access 上的文档。
安全规则
我正在尝试根据文档字段授予权限:
match /users/{user}/{documents=**} {
allow read, write: if resource.data.uid == request.auth.uid
}
Firebase 查询
我的查询如下所示:
query(collection(db, "users", match.params.uid, "promotors"));
错误信息
但我不断收到这条消息:
FirebaseError: Missing or insufficient permissions.
您的查询未以任何方式检查文档字段中的数据,因此它永远不会满足您的这部分规则:resource.data.uid
.
相反,您似乎遇到的是文档 ID 与用户的 UID 匹配的情况,您可以通过以下方式检查:
match /users/{user}/{documents=**} {
allow read, write: if user == request.auth.uid
}
另请参阅 content owner only access 上的文档。