为什么 firebase firestore 规则拒绝写入,指示 '...==...' 和 '&&' 为 false
why is firebase firestore rule denies write, indicating '...==...' and '&&' as false
Firestore 安全规则拒绝访问。
规则是:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{id} {
allow create, update, delete: if request.auth != null && request.auth.uid == id;
allow read: if request.auth != null;
}
}
}
游乐场规则指示 '...==...'
和“&&”为假。这有什么问题?非常感谢帮助!
完整规则和截图:
allow create, update, delete: if request.auth != null && request.auth.uid == id;
从你的截图来看,你是运行更新模拟。
request.auth != null
如果用户未登录将失败。
request.auth.uid == id
如果 uid != id; 将失败
从您的屏幕截图中,我们可以看到 authenticated 设置为 true。因此条件 1 将通过。
由于第二个条件,它目前正在失败。 request.auth.uid == id
目前,id == 'user',但是 request.auth.uid != 'user';
解决方案。将 request.auth.uid 设置为 'user'。为此,请进行身份验证,在 firebase UID 下,输入 'user'(作为您的 firebase uid)。它应该有效。
注意:您可能没有正确构建数据。您当前的数据结构类似于 'users/user',而应该是 'users/{userId}',其中 userId 是在用户创建帐户时由 firebase 生成的。
Firestore 安全规则拒绝访问。
规则是:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{id} {
allow create, update, delete: if request.auth != null && request.auth.uid == id;
allow read: if request.auth != null;
}
}
}
游乐场规则指示 '...==...'
和“&&”为假。这有什么问题?非常感谢帮助!
完整规则和截图:
allow create, update, delete: if request.auth != null && request.auth.uid == id;
从你的截图来看,你是运行更新模拟。
request.auth != null
如果用户未登录将失败。request.auth.uid == id
如果 uid != id; 将失败
从您的屏幕截图中,我们可以看到 authenticated 设置为 true。因此条件 1 将通过。
由于第二个条件,它目前正在失败。 request.auth.uid == id
目前,id == 'user',但是 request.auth.uid != 'user';
解决方案。将 request.auth.uid 设置为 'user'。为此,请进行身份验证,在 firebase UID 下,输入 'user'(作为您的 firebase uid)。它应该有效。
注意:您可能没有正确构建数据。您当前的数据结构类似于 'users/user',而应该是 'users/{userId}',其中 userId 是在用户创建帐户时由 firebase 生成的。