我有这个火力基地:
users: {
userId: {
notifications: {
notificationId: "Notification"
}
}
}
当给出“Notification”时,我试图找到它的notificationId(它是从push()方法生成的),所以我最终可以删除它。根据文档,$ indexFor()方法应该为我做这个。这是我的代码:
var ref = new Firebase('https://url.firebaseio.com/');
$scope.dismissNotification = function(notification) {
var notificationRef = ref.child('users/' + $scope.currentUser.id + '/notifications');
var notifications = $firebaseArray(notificationRef);
notifications.$loaded().then(function(data) {
console.log(data);
console.log(data.$indexFor(notification));
}).catch(function(error) {
console.log('Error: ' + error);
});
};
第一个日志是正确的对象,里面有我正在寻找的通知字符串,但第二个日志返回-1,当我希望它返回与之关联的notificationId时。
答案 0 :(得分:2)
不确定您要完成的任务,但这是查找给定值的密钥的最简单方法:
var notificationRef = ref.child('users/' + $scope.currentUser.id + '/notifications');
var query = notificationRef.orderByValue().equalTo(notification);
query.once('child_added', function(snapshot) {
console.log(snapshot.key());
});