问题描述
我使用 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 (将#修改为@)