错误:PERMISSION_DENIED-Angular 7和Firebase

时间:2019-02-23 12:27:42

标签: angular firebase firebase-realtime-database firebase-security-rules

我知道这是一个常见的问题,但是我没有找到以前的问题。

我创建了一个新的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

1 个答案:

答案 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
    }
}