我正在尝试使用FireStore查询AngularFire2中的子集合但没有成功。已搜索但未找到合适的解决方案。
ngOnInit() {
// this does work
this.africaCollection = this.afs.collection('Country', ref => ref
.where('code', '==', 'za'));
this.countriesAfrica = this.africaCollection.valueChanges();
// this does not work
this.townCollection = this.afs.collection('Country').doc('za')
.collection('Towns');
this.towns = this.townCollection.valueChanges();
{
我的HTML看起来像这样:
<div>
<table>
<tr *ngFor="let town of towns | async">
<td>{{ town.name }}</td>
</tr>
</table>
</div>
我是新手。
答案 0 :(得分:1)
这可能与您的规则有关。
默认规则
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
有关规则的更多详细信息:
https://firebase.google.com/docs/firestore/security/secure-data#rules_dont_cascade
确保您拥有该集合中的项目
您还可以按代码向集合中添加项目,以确保其位置正确。然后,您将能够查看您的firebase控制台以查看它的放置位置。
var town: Town = {
name: "town name",
region: "region name"
};
this.afs.collection('Country').doc('za').collection('Towns').add(town);