Firebase 存储错误:权限被拒绝。无法访问存储桶 my-bucket-name
Posted
技术标签:
【中文标题】Firebase 存储错误:权限被拒绝。无法访问存储桶 my-bucket-name【英文标题】:Firebase Storage Error: Permission denied. Could not access bucket my-bucket-name 【发布时间】:2019-07-30 20:48:14 【问题描述】:使用 Angular 7,我正在尝试使用 Angularfire2 上传图片
ts
uploadFile(event)
const file = event.target.files[0];
const filePath = 'name-your-file-path-here';
const ref = this.storage.ref(filePath);
const task = ref.put(file);
html
<input type="file" (change)="uploadFile($event)">
得到以下错误:
POST https://firebasestorage.googleapis.com/v0/b/my-bucket-name/o?name=name-your-file-path-here 400
“错误”: “代码”:400, “消息”:“权限被拒绝。无法访问存储桶 my-bucket-name。请通过以下方式为您的存储桶启用 Firebase 存储 访问 Firebase 控制台中的存储选项卡并确保您 有足够的权限来正确配置资源。"
我读到我必须在firebase-storage@system.gserviceaccount.com
控制台中添加一个存储管理员,但这并没有解决问题。
我在 Firebase 存储中的规则是:
service firebase.storage
match /b/bucket/o
match /allPaths=**
allow read, write;
有什么想法吗?
【问题讨论】:
你找到解决办法了吗? 我了解到您正在尝试通过 AngularFire2 for Firebase 将图像上传到您的 Cloud Storage 存储桶,这样做时会引发权限错误。我建议您通过免费的Firebase support 调查您的问题。这将为您的查询提供最有效和最合适的支持方式,因为该团队最适合解决与 Google Cloud Platform 产品的 Firebase 集成相关的问题。 【参考方案1】:如果我没记错您使用的是 AngularFire 并且在他们的 documentation 中,您会看到他们在提供程序声明中使用 my-bucket-name
作为占位符。将此替换为您的存储桶名称(我假设它在您的环境变量中)。
@NgModule(
declarations: [],
imports: [],
providers: [
provide: BUCKET, useValue: environment.firebase.storageBucket ,
],
bootstrap: []
)
【讨论】:
以上是关于Firebase 存储错误:权限被拒绝。无法访问存储桶 my-bucket-name的主要内容,如果未能解决你的问题,请参考以下文章