由于权限问题,无法访问 Firebase 中的 Cloud Firestore
Posted
技术标签:
【中文标题】由于权限问题,无法访问 Firebase 中的 Cloud Firestore【英文标题】:Unable to access cloud firestore in firebase due to permission issues 【发布时间】:2020-10-17 08:54:52 【问题描述】:我是 Firebase 项目的所有者, 我的DataBase 规则读写设置为true,但我无法在cloudFireStore storage.SHA1 和SHA256 中读取和写入密钥也添加到googleservices.json 文件中,出现Permission Denied 异常。
异常详情:
W/Firestore(12435): (21.3.0) [Firestore]: 侦听查询(users/null/info) 失败:状态code=PERMISSION_DENIED, description=Missing or enough permissions., cause=null I/System.out(12435): com.google.firebase.firestore.FirebaseFirestoreException: PERMISSION_DENIED: 权限缺失或不足。
数据库规则代码:
rules_version = '2';
service cloud.firestore
match /databases/database/documents
// This rule allows anyone on the internet to view, edit, and delete
// all data in your Firestore database. It is useful for getting
// started, but it is configured to expire after 30 days because it
// leaves your app open to attackers. At that time, all client
// requests to your Firestore database will be denied.
//
// Make sure to write security rules for your app before that time, or else
// your app will lose access to your Firestore database
match /document=**
allow read, write: if true;
任何帮助都会非常有帮助。
【问题讨论】:
Firestore 安全规则依赖于服务帐户和 IAM 绑定。如果服务帐户缺少 firebaserules.system 角色,您的安全规则将拒绝所有请求。您可以参考此link 为服务帐户设置 IAM 角色。 谢谢,问题已解决 为了更好地重用可能对 GCP 社区有所帮助的信息。请帮助投票我添加的答案,谢谢! 【参考方案1】:使用云控制台解决:
gcloud 项目 add-iam-policy-binding 项目名称 --member=serviceAccount:service-project id@firebase-rules.iam.gserviceaccount.com --role=roles/firebaserules.system
【讨论】:
【参考方案2】:Firestore 安全规则依赖于服务帐号和 IAM 绑定。如果服务帐号缺少 firebaserules.system 角色,您的安全规则将拒绝所有请求。您可以参考此link 为服务帐号设置 IAM 角色。
【讨论】:
以上是关于由于权限问题,无法访问 Firebase 中的 Cloud Firestore的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 存储安全规则 400 错误问题“权限被拒绝。无法访问存储桶 xxxxx-****.appspot.com”
Firebase 存储错误:权限被拒绝。无法访问存储桶 my-bucket-name