说,我有一个带有值的数组
types = ['jay', 'pigeon', 'crow', 'peacock']
我想根据其是否包含文档属性birds
对Firestore集合type
进行查询。
所以
groaney: {
...
type: 'crow'
...
},
chirpie: {
...
type: 'chick'
...
},
jeery: {
...
type: 'jay'
...
}
我们应该得到
groaney: {
...
type: 'crow'
...
},
jeery: {
...
type: 'jay'
...
}
我意识到我可以分别查询各个元素
Promise.all(
types.map(t =>
firebase.firestore().collection('birds')
.where('type', '==', t)
.get()
)
)
,然后合并结果。但是,我宁愿使用单个where()
一口气做到这一点,因为对一堆Firestore集合Promise.all()
执行where
似乎对我来说是浪费资源。
是否有一种优雅/有效的方法来实现这一目标?
(顺便说一句,请注意,当涉及到反问题时,即在一个集合中查询单个值的数组成员身份,我们有where('types', 'array-contains', type)
来进行救援。)