按特定属性的数组值过滤Firebase记录

时间:2018-11-13 07:37:56

标签: firebase react-native google-cloud-functions

我正在玩firebase functions,但有一个问题。我的Firebase DB的结构如下:

 myDb
  |
Users
    |
    000001
      |
      Name: Sam
      |
      Items: [1,2,3]
    |
    000002
      |
      Name: Jim
      |
      Items: [3,4,5]

我想做的是过滤在 Items 值内具有 3 的所有用户。我没有在他们的文档中找到类似于this SO post的用于过滤数据的内容。也许是因为这不是一个简单的值。我不知道。我现在想知道如何执行此特定过滤。

1 个答案:

答案 0 :(得分:0)

数组包含过滤器在Firebase实时数据库中是不可能的,但这是Firestore的新增功能。

firebase.firestore().collection('users').where('items', 'array-contains', 3)

在Firebase实时数据库中,您希望将它们构造为可以查询的对象

{
    name: "Jim",
    items: {
        1: true,
        2: true,
        3: true
    }
}

然后查询将是这样

firebase.database().ref('users').orderByChild('items/3').equalTo(true);