一尘不染

如何在Firebase Firestore中使用查询

node.js

我正在使用Firebase函数和Firebase Firestore开发用于存储用户数据的API。

我想使用存储在其字段中的属性来查找文档。是Firebase文档,其中说明了如何实现相同的功能。

// Create a reference to the cities collection
var citiesRef = db.collection('cities');

// Create a query against the collection
var queryRef = citiesRef.where('state', '==', 'CA');

我想处理两种情况

  1. 在没有文件的情况下

  2. 有两个以上具有当前条件的文件

如何处理以上两种情况?


阅读 319

收藏
2020-07-07

共1个答案

一尘不染

按照上面的注释中的“讨论”,在Cloud
Function中,您可以使用方法QuerySnapshot返回的get()方法进行以下操作:

admin.firestore().collection("cities")
    .where('state', '==', 'CA')
    .get()
    .then(querySnapshot => {
        if (querySnapshot.size == 0) {
            console.log("0 documents");
        } else if (querySnapshot.size > 2) {
            console.log("More than 2 documents");
        } 
    });

如上所述,请注意,这将花费阅读集合中每个文档的成本。如果您有一个非常大的集合,则可以编写一个Cloud
Function,每次在该集合中添加文档或从中删除文档时都会更新计数器。

2020-07-07