我正在尝试创建查询以获取其中的userId等于当前userId或当前userId等于contributorsId的Firestore集合/文档。
export default compose(
connect(mapStateToProps),
firestoreConnect((props) => {
if (!props.auth.uid) return []
return [
{
collection: 'canvases',
orderBy: ['createdAt', 'desc'],
where: [
['userId', '==', props.auth.uid] || ['contributors', 'array-contains', props.auth.uid]
],
}
]
})
)(CanvasSelector);
我希望它给我所有陈述正确的文档。但是它只返回第一个。如果我选择仅包含其中一个查询(“ where”),则它们都会起作用并返回正确的文档。
答案 0 :(得分:0)
我认为您没有正确传递查询 尝试这样-
where: [
['userId', '==', props.auth.uid],
['contributors', 'array-contains', props.auth.uid]
],
还要在将等号运算符(==)与范围或array-contains子句(<,<=,>,> =或array-contains)一起使用时,确保创建复合索引
在此处了解如何创建一个 https://firebase.google.com/docs/firestore/query-data/indexing