使用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
控制台中,但这不能解决问题。
我在Firebase Storage中的规则是:
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write;
}
}
}
有什么想法吗?
答案 0 :(得分:0)
如果我没记错的话,您使用的是 AngularFire 并且在他们的 documentation 中,您会看到他们在提供者声明中使用 my-bucket-name
作为占位符。将其替换为您的存储桶名称(我假设在您的环境变量中)。
@NgModule({
declarations: [],
imports: [],
providers: [
{ provide: BUCKET, useValue: environment.firebase.storageBucket },
],
bootstrap: []
})