angular - 错误:PERMISSION_DENIED - Angular 7 和 Firebase
问题描述
我知道这是一个常见问题,但我没有在前面的问题中找到我的问题。
我创建了一个新的 firebase 项目,我正在尝试使用它。我创建了 public 以便每个人都可以实际使用:
权限
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
但是当我试图发布一个对象时,我得到了一个错误:
错误:未捕获(承诺中):错误:PERMISSION_DENIED:权限被拒绝错误:PERMISSION_DENIED:权限被拒绝
如果数据库当前是公开的,我怎么可能没有权限?我该如何解决?
我的代码很简单:
目的
export class Coordenate {
$key: string;
latitude: number;
longitude: number;
}
打字稿组件
onAddMarker(event) {
this.databaseService.postCoordenate(event.coords.lat, event.coords.lng);
//this.latitude = event.coords.lat;
//this.longitude = event.coords.lng;
}
服务
listToStore: AngularFireList<any>;
//Insert a new bet
postCoordenate(latitude, longitude) {
this.listToStore = this.db.list("coordenates");
//Get the value of the photo URL in subscribe
this.listToStore.push({
latitude: latitude,
longitude: longitude
});
}
在我的角度项目firebaseConfig
中添加到我的environment
解决方案
这是因为您的规则对于 firebase cloud firestore 是公开的,但您正在尝试将数据写入 firebase 实时数据库。选择 firebase 实时数据库并应用以下规则:
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": true,
".write": true
}
}
推荐阅读
- excel - 我可以从非活动工作表中获得选择吗
- python - 是否可以仅创建一行简单的字典?
- python - 在最近的日期时间合并具有不同长度的数据帧
- office365 - 我们如何更改 SharePoint Online 域名?
- python - 如何调用基类中的方法?
- arrays - 将 BigQuery 结果保存到数组
- android - 如何在 Android 中使用 AWS Transcribe 获得实时语音转文本?
- sqlite - 使用 SQLite 作为文件缓存
- sql-server - TSQL 将两个带有略微不同 where 子句的计数查询组合成一个输出
- android - 错误 DialogFragment 从多个片段开始