对于前端(角度)有服务器,后端在Firebase中,我正在使用Cloud Firestore。
我尝试了实时数据库,一切正常,但是我想尝试Cloud Firestore及其集合。
问题如下:
这是组件:
items: Array<any>;
constructor(private aboutUsService: AboutUsService) { }
ngOnInit() {
this.getData();
}
getData() {
this.aboutUsService.getContent()
.subscribe(data => {
this.items = data;
console.log('items: ', this.items);
}, // Bind to view
err => {
console.log(err);
});
}
这是服务:
getContent() {
return this.db.collection('aboutus').snapshotChanges();
}
目前,我在Cloud Firestore中有一个收藏集:
规则Cloud Firestore:
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
服务响应并返回带有元素的以下数组(这是this.items的内容):
[{…}]
0:
payload: {type: "added", doc: n, oldIndex: -1, newIndex: 0}
type: "added"
这些是Chrome网络标签中的标题:
Request URL: http://localhost:4200/aboutus
Request Method: GET
Status Code: 304 Not Modified
Remote Address: 127.0.0.1:4200
但是我无法找到该集合的数据以在前端显示它(可变this.items)。
如果我在响应数组中将元素添加到集合“ aboutus”中,则它对应于集合中的元素,但我无法可视化数据。
可能是什么问题呢?谢谢
正如我在2个多星期前(5月15日)的评论中所提到的:
您应该使用
AngularFirestoreCollection.valueChanges
,它返回Observable
集合值的,同时AngularFirestoreCollection.snapshotChanges
在快照上显示其他元数据。有关更多信息,请考虑查看文档:https : //github.com/angular/angularfire/blob/master/docs/firestore/collections.md
因此,您应将snapshotChanges
呼叫替换为valueChanges
:
getContent() {
return this.db.collection('aboutus').valueChanges();
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句