我知道这是一个常见的问题,但是我没有找到以前的问题。
我创建了一个新的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
答案 0 :(得分:4)
这是因为您的规则对于Firebase Cloud Firestore是公开的,但是您正在尝试将数据写入Firebase实时数据库。选择firebase实时数据库并应用以下规则:
{
/* Visit https://firebase.google.com/docs/database/security to learn more about security rules. */
"rules": {
".read": true,
".write": true
}
}