我正在使用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');
我想处理两种情况
在没有文件的情况下
有两个以上具有当前条件的文件
如何处理以上两种情况?
按照上面的注释中的“讨论”,在Cloud Function中,您可以使用方法QuerySnapshot返回的get()方法进行以下操作:
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,每次在该集合中添加文档或从中删除文档时都会更新计数器。