如何在Firebase Firestore中使用Query
我正在使用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');
我想处理两种情况
- 没有符合现状的文件
- 当前条件超过两份的文件
如何处理上述两种情况?
回答如下:按照上面评论中的“讨论”,在云函数中,您可以使用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,每次在集合中添加/删除文档时更新计数器。