我有一个如下所示的数组:
validZipCodes = [
"84606",
"84605",
"84601"
]
我查询了一些这样的数据:
var Jobs = firebase.child('Jobs');
我试过了:
var Jobs = firebase.child('Jobs').orderByChild('ZipCode').equalTo($scope.validZipCodes);
但是它返回了一个错误,它是一个无效的数据类型,无论如何要说:
var Jobs = firebase.child('Jobs').orderByChild('ZipCode').inArray($scope.validZipCodes);
或类似的东西。
请注意,这是一个数组比较&不查询对象中的文本。
答案 0 :(得分:4)
以下是我最终的表现:
使用foreach命令,您可以轻松地操作数据,然后将其推送到数组中,以便重新创建数据集合,无论您需要它。
$scope.validZipCodes = [];
$scope.validContractorJobs = [];
var Jobs = firebase.child('Jobs');
contractorJobs.on('value', function(snap) {
snap.forEach(function(job) {
angular.forEach($scope.validZipCodes, function(value, key) {
if(job.val().ZipCode == value) {
$scope.validContractorJobs.push(job.val());
}
});
});
});
答案 1 :(得分:1)
Firebase .equalTo()
documentation声明value
参数应为以下类型之一:String
,Number
,Null
或Boolean
您收到invalid data-type
错误,因为您没有传递其中一种类型。
没有类似.inArray()
的方法(即查询equalTo多个值)。
您可以查看Query documentation中的所有Firebase查询方法,其中还建议: