带有Firebase的Angular无法访问数据

时间:2018-07-26 13:51:34

标签: angular firebase firebase-realtime-database permissions

我在Angular中有一个非常简单的应用,应该读取一个小的Firebase数据库...

很简单:

alien_attack.py

出于测试目的,不应对Firebase进行身份验证,换句话说,任何人都可以阅读它。

规则设置为:

import { Component } from '@angular/core';
import { AngularFireDatabase } from 'angularfire2/database';

@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})

export class AppComponent {
courses: any[];

constructor(db: AngularFireDatabase) {
db.list('/courses/IlZ5lAPfQDmWAf52hAI4')
  .valueChanges().subscribe(courses => {
    this.courses = courses;
    console.log(this.courses);
    });
  }
}

我应该提到,在Firebase模拟器中,我可以列出/ courses / IlZ5lAPfQDmWAf52hAI4文档。

但是我不断收到没有权限的错误,例如:RROR错误:/ courses / IlZ5lAPfQDmWAf52hAI4中的Permission_denied:客户端没有访问所需数据的权限。

我不知道发生了什么...应该很简单。

谢谢

1 个答案:

答案 0 :(得分:2)

您在代码上使用了 Firebase Real-Time数据库,但是您提供了 Cloud Firestore 规则。
您应该使用实时数据库或Cloud Firestore。转到您的Firebase控制台,然后在“开发/数据库”部分下可以在它们之间进行切换。 因此,请选择要使用的选项,并相应地提供其规则。
注意 -当前,您正在代码中使用Realtime数据库,因此,如果要使用Cloud Firestore,则必须在模块中更改导入并使用其他对象。您应该在official documents中详细了解它。