我正在尝试使用angular访问firebase,在我的服务中我有这个导入:
import { AngularFireDatabase , AngularFireList , AngularFireObject } from 'angularfire2/database';
我的构造函数和get数据就像这样:
employees : AngularFireList<any>; // what comes from database
Employee : AngularFireObject<any>; // model
constructor(public af:AngularFireDatabase) {
this.employees = af.list('/employees') as AngularFireList<Employee>;
}
getEmployees(){
return this.employees;
}
在我的组件中,我这样调用方法getEmployees:
ngOnInit() {
this.service.getEmployees().valueChanges().subscribe(employees => {
this.employees = employees;
console.log(this.employees);
});
}
当应用程序运行时,我的chrome控制台中出现以下错误:
ERROR Error: permission_denied at /employees: Client doesn't have permission to access the desired data.
我可以完全访问Firebase,正如你在这里看到的:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
您编写的规则适用于Firestore,但您的代码正在尝试访问实时数据库。。。这是实时数据库规则的链接。
要设置实时数据库规则以允许一切,请将其更改为:
{
"rules": {
".read": true,
".write": false
}
}