Cloud Firestore 每次读取定价

Posted

技术标签:

【中文标题】Cloud Firestore 每次读取定价【英文标题】:Cloud Firestore Pricing per read 【发布时间】:2018-01-04 19:11:42 【问题描述】:

您好,我有以下代码块。它使用 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 ;
            );
          );
    

【问题讨论】:

【参考方案1】:

Firebase pricing page 表示免费/Spark 计划项目的 Cloud Firestore 配额:

文档读取:50K/天

顾名思义,这会计算 Firestore 代表您读取的文档数量。因此,读取 200 个文档的单个查询将计为 200 个。

您当前的代码将请求所有文档,返回一个,然后分离观察者。这样就可以读取所有内容。

如果你只想读取一个文档,将limit传入observable:

 collection('MenuItems', ref => ref.limit(1))

【讨论】:

以上是关于Cloud Firestore 每次读取定价的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Firestore 读取和定价

Firestore 读/写定价; .limit(25) 算作 25 次读取还是 1 次?

Firestore 定价模型案例

了解 Firestore 定价

Cloud Firestore 中文档和字段的名称/键会影响我的配额吗?

离线缓存数据的 Firestore 定价说明