我在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:客户端没有访问所需数据的权限。
我不知道发生了什么...应该很简单。
谢谢
答案 0 :(得分:2)
您在代码上使用了 Firebase Real-Time数据库,但是您提供了 Cloud Firestore 规则。
您应该使用实时数据库或Cloud Firestore。转到您的Firebase控制台,然后在“开发/数据库”部分下可以在它们之间进行切换。
因此,请选择要使用的选项,并相应地提供其规则。
注意 -当前,您正在代码中使用Realtime数据库,因此,如果要使用Cloud Firestore,则必须在模块中更改导入并使用其他对象。您应该在official documents中详细了解它。