根据Firebase中的类别检索数据

时间:2016-01-10 19:23:39

标签: javascript angularjs firebase firebase-realtime-database

我是Firebase的新手,我对检索一些数据有疑问。 假设我有以下数据结构:

Screenshot of the JSON

我的查询的目标是针对给定的国家/地区名称我想要检索其目标数组包含此国家/地区的所有用户。例如: 查询" Jordan"它将检索:user2和user3。

有人知道我怎么能用Firbase Angular做这样的查询?

1 个答案:

答案 0 :(得分:4)

Firebase没有与数组中的项匹配的查询运算符。实际上:Firebase建议不要使用阵列来处理您拥有的阵列。相反,存储数据如下:

advisors-countries: {
  user1: {
    destinations: {
      Angola: true,
      Australia: true
    }
  },
  user2: {
    destinations: {
      Angola: true,
      Austria: true,
      Jordan: true
    }
  },
  user3: {
    destinations: {
      Austria: true
      Egypt: true,
      Jordan: true
    }
  }
}

现在,您可以查询目的地为Jordan的用户:

var users = ref.child('advisors-countries').orderByChild('destinations/Jordan')
                                           .equalTo(true);

然后使用以下命令将其绑定到AngularJS范围:

$scope.users = $firebaseArray(users);

这种类型的数据结构称为索引,您经常会发现需要向NoSQL数据库添加特定索引以满足应用程序的查询要求。有关该主题的详细介绍,请参阅此article on NoSQL data modeling