我想过滤 Firebase 路径并查看我的路径中是否存在子项。
我只想返回具有路径调用“reponses”的值。它可以工作,但是当路径没有这个 Child 时,它会抛出这个错误:
firebase.js:283 Uncaught TypeError: Cannot read property '$value' of
firebase.js:276 FIREBASE WARNING: Exception was thrown by user callback.
TypeError: Cannot read property '$value' of undefined
我像这样使用 Firebase-util 和 Angularfire:
var ref = firebase.database().ref();
var nc = new firebase.util.NormalizedCollection(
ref.child('accounts/' + $localStorage.accountId + '/demandes'),
[ref.child('demandes'), 'widget2']).select('widget2.duree', 'widget2.derniere_modification', 'widget2.reponses', 'widget2.exp', 'widget2.ajout_le', 'widget2.localisation').
filter(function(data, key, priority) {
return data.reponses.$value !== null; // This cause problems !
}).ref();
$scope.items = $firebaseArray(nc);
除了
return data.reponses.$value !== null;
之外,我还能如何以正确的方式进行测试?谢谢你
听起来
data.responses
是 undefined
所以你可以像这样检查 $value
:
.filter(function (data, key, priority) {
return data.responses && data.responses.$value !== null;
}).ref();
这可以确保在探测
responses
之前,data
上有一个 $value
字段。