代码之家  ›  专栏  ›  技术社区  ›  Rajesh K

如何在FireBase FireStore中使用查询

  •  -1
  • Rajesh K  · 技术社区  · 7 年前

    我正在使用firebase函数和firebase firestore来开发一个API,它将存储用户数据。

    我想使用存储在其字段中的属性定位文档。 This 是说明如何实现相同目标的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. 有两个以上符合本条件的文件的

    以上两种情况如何处理?

    1 回复  |  直到 7 年前
        1
  •  2
  •   Renaud Tarnec    7 年前

    在以上注释中的“讨论”之后,在云函数中,您可以使用 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");
            } 
        });
    

    如上所述,请注意,这将花费对集合中每个文档的读取。如果您有一个非常大的集合,您可以编写一个云函数,在每次向集合中添加/删除文档时更新计数器。