如何解决Firestore 模拟器:规则允许我拒绝
我使用 Firebase 构建了一个应用。为了保护我的数据库,我使用了一些规则。
这是一个示例
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
function getUserData(
userId
){
return get(/databases/$(database)/documents/Users/$(userId)).data;
}
// Check if the requested user has specified roles
function hasUserRole(
userId,roles
){
return getUserData(userId).role in roles;
}
match /Users/{user} {
allow list: if hasUserRole(request.auth.uid,['Admin']);
}
}
}
我混合使用了在该网站 https://datadependence.com/2019/10/firestore-rules-examples/#using-functions
中找到的 2 条规则第一个
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /pets/{petId} {
allow read: if get(/databases/$(database)/documents/petowners/$(request.resource.data.ownerId)).data.userId == request.auth.uid
}
}
}
第二个
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /emails/{emailId} {
allow write: if request.resource.data.status in ['sending','soft-bounce','hard-bounce','received']
}
}
}
firestore 的内容 enter image description here
FireAuth 的内容 enter image description here
应用程序中产生错误的代码。 uid 的值 => NERot4xIAZBiDrH3XKmsCbtokP5Y
this._firestore.doc("/Users/" + uid).get()
请帮助我了解为什么我仍然遇到有关在模拟器中被拒绝的权限并且在 GCP 控制台中完美运行的问题
GCP 规则模拟器截图 enter image description here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。