根据 Firebase 中的类别检索数据

Retrieve data based on categories in Firebase

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

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

任何人都知道我如何使用 Firbase 进行这样的查询 Angular?

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
    }
  }
}

现在您可以查询目的地为约旦的用户:

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

然后将其绑定到您的 AngularJS 范围:

$scope.users = $firebaseArray(users);

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