通过不等式查询firestore

时间:2018-04-01 20:32:54

标签: javascript reactjs firebase redux google-cloud-firestore

我知道这可能是Firestore: how to perform a query with inequality / not equals的副本,但我真的没有从这个问题得到答案。

Firestore不接受不等式运算符<div class="content s"> text1 </div> <div class="content a"> text2 </div> <div class="content b"> text3 </div>

假设我想查询uid不是我的任务。 查询我创建的任务很简单,因为我只需要使用!=

我有以下代码。

==

我似乎无法完成这项工作。任何建议将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:1)

Doug对这些问题的回答说,您需要使用两个单独的查询来获得结果:一个用于db.collection('tasks').where('owner', '>', `/users/${uid}`)  和db.collection('tasks').where('owner', '<', `/users/${uid}`)一个。然后,您需要在客户端代码中合并结果。

所以:

const tasks = await db.collection('tasks')
  .where('owner', '<', `/users/${uid}`)
  .get()

let taskList = []
tasks.forEach((task) => {
  taskList.push(task.data())
})

tasks = await db.collection('tasks')
  .where('owner', '>', `/users/${uid}`)
  .get()
tasks.forEach((task) => {
  taskList.push(task.data())
})

dispatch({
  type: 'FETCH_TASKS_FULFILLED',
  payload: taskList
})