如何在 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 上的文档。