Firebase存储错误:权限被拒绝。无法访问存储桶我的存储桶名称

时间:2019-03-08 19:20:32

标签: google-cloud-platform firebase-storage angularfire2

使用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,       “ message”:“权限被拒绝。无法访问存储桶my-bucket-name。请通过以下方式为您的存储桶启用Firebase存储:   在Firebase控制台中访问“存储”标签,并确保您   有足够的权限来正确配置资源。“}}

我已阅读到我必须以存储管理员的身份添加到firebase-storage@system.gserviceaccount.com控制台中,但这不能解决问题。

enter image description here

我在Firebase Storage中的规则是:

service firebase.storage {
  match /b/{bucket}/o {
    match /{allPaths=**} {
      allow read, write;
    }
  }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,您使用的是 AngularFire 并且在他们的 documentation 中,您会看到他们在提供者声明中使用 my-bucket-name 作为占位符。将其替换为您的存储桶名称(我假设在您的环境变量中)。

@NgModule({
  declarations: [],
  imports: [],
  providers: [
    { provide: BUCKET, useValue: environment.firebase.storageBucket },
  ],
  bootstrap: []
})