使用OrderByChild的Firebase查询数据
Query data with Firebase with OrderByChild
我有以下数据结构
{
"advisors" : {
"0ea9bab6-415e-4900-8698-ac03a1ef4518" : {
"description" : "",
"price" : 0,
"title" : ""
},
"cc31c353-ca6a-440d-b188-af2016f72aef" : {
"description" : "",
"price" : 0,
"title" : ""
},
"d8403e9b-fb74-4425-874f-2d125cd07a68" : {
"description" : "I know every corner in the arab countries.",
"price" : "50",
"title" : "Best guide in the middle east"
}
},
"advisors-countries" : {
"0ea9bab6-415e-4900-8698-ac03a1ef4518" : {
"Angola" : "true"
},
"cc31c353-ca6a-440d-b188-af2016f72aef" : {
"Angola" : "true"
}
},
我想提出以下问题:给我所有顾问的价格,他们的名单中有安哥拉。
我尝试了下一个代码,只检索安哥拉=true的Advisor国家的孩子。
var advisors = (ref.orderByChild("Angole").equalTo(true));
$scope.users = $firebaseArray(advisors);
console.log("sync ", $scope.users);
但我在advisors对象中一直得到null对象。
要使用AngularFire轻松完成查询,您需要修改数据结构。
"advisors-countries" : {
"0ea9bab6-415e-4900-8698-ac03a1ef4518" : {
"Angola" : "true",
"price": 0
},
"cc31c353-ca6a-440d-b188-af2016f72aef" : {
"Angola" : "true",
"price": 0
}
}
您应该在advisors-countries
位置中包括价格和任何其他相关数据。如果你担心重复数据,那没关系。您可以使用多路径更新来保持数据的一致性。
然后你的查询会起作用:
var query = ref.orderByChild("Angola").equalTo(true);
现在,为什么$scope.users
为null
当您将$scope.users
记录到控制台时,它将是null
,因为一开始没有数据。下载数据是一个异步操作,因此一开始它不可用。
要调试此操作,请使用$loaded()
。
$scope.users = $firebaseArray(advisors);
$scope.users.$loaded().then(function(data) {
console.log(data);
console.log(data === $scope.users);
});
在第一个日志中,您将获得所有存在的数据。在第二个日志中,您将看到data
参数与$scope.users
对象相同。这意味着您不必使用$loaded()
,因为当可用时,它将在您的模板中使用。
相关文章:
- 从sqlite数据库查询数据结果文件名
- ColdFusion - 查询数据表和 CRUD 操作的方法
- j查询数据表禁用特定行中的排序
- 使用 JavaScript var 通过 PHP MySQL 查询数据
- 使用反斜杠查询数据属性
- j查询数据表 导出按钮 动态文件名和标题
- Nodejs 查询数据和代码组织
- 谷歌融合表查询数据操作
- j查询数据表和排序列
- 使用 javascript 从 Mongo 集合中查询数据
- 在没有表单的情况下将查询数据发布到 URL 的方法
- 使用OrderByChild的Firebase查询数据
- 如何使用javascript在XML文件中查询数据
- 将查询数据保存到变量中,以便在以后的代码中使用
- 使用自己的Facebook访问令牌查询数据以填充数据库
- 如何在javascript中查询数据属性值(没有jquery)
- SpagoBI:使用查询数据集结果的脚本数据集
- 如何使页面上的Javascript可以使用MSSQL查询数据,而无需再次查询数据库
- 哪里是过滤AJAX查询数据的最佳位置
- 返回要在js节点js中呈现的查询数据