您好我正在使用以下代码块。它使用Angular fire 2从Cloud Firestore获取数据。代码工作正常。但在正常使用和测试后,我很快就超过了我每天的50,000次读取免费限额。
我想知道结果集是否返回200个项目的列表。 Firestore是否将读取数量计为1或200.(根据您可以看到的代码只有一个查询)?
根据其配额和限制文档,如果列表中的某个数据被更改/修改,则被视为另外一个读取。这是针对所有退回的记录还是针对每条记录?即使我们使用take(1)
?
menuCol: AngularFirestoreCollection<Menu>;
menues: any;
constructor(private afs: AngularFirestore, private router : Router) { }
ngOnInit() {
this.menuCol = this.afs.collection('MenuItems');
this.menues = this.menuCol.snapshotChanges().take(1)
.map(actions => {
return actions.map(a => {
const data = a.payload.doc.data();
const id = a.payload.doc.id;
return { id, data };
});
});
}
答案 0 :(得分:1)
对于免费/ Spark计划中的项目,Firebase pricing page说明了Cloud Firestore的配额:
文件读取:50K /天
顾名思义,这会计算Firestore代表您读取的文档数量。因此,读取200个文档的单个查询将计为200。
您当前的代码将请求所有文档,返回一个文档,然后分离观察者。所以这将阅读所有这些。
如果您只想阅读一个文档,请将限制传递给observable:
collection('MenuItems', ref => ref.limit(1))