根据值从Firebase JSON树中获取特定值

时间:2015-03-04 19:24:13

标签: javascript json firebase

我正在使用Firebase编写一个Javascript网络应用。如果我的JSON树中有这样的数据:

users
     session1
          screenname:Bill
     session2
          screenname:Steve

...我知道会话号码,我怎么能抓住"名称"用户?我试过这个:

valUsers.child('session1').child('screenname').once('value', function(data){
     console.log(data);
});

但这似乎不起作用。我猜我有语法问题?

1 个答案:

答案 0 :(得分:3)

你非常接近,但需要使用DataSnapshot.val(),如下所示访问你想要的点。

var ref = new Firebase('yourfirebaselocation/users');
var sessionNum = 'session1';
ref.child(sessionNum + '/screenname').once('value', function(dataSnapshot) {
  var specificScreenname = specificPoint.val();
}

使用Firebase时,您可能还想探索使用Promise objects。这样您就可以创建一些可重复的功能,可以在多个位置重复使用您的引用,并为Firebase提供时间来响应您的查询。

var ref = new Firebase('yourfirebaselocation/users');

function getUser(theRef, location) {
  return new Promise(
    function(resolve, reject) {
      theRef.child(location).once('value', function(dataSnapshot) {
        resolve(dataSnapshot);
      });
    });
}

getUser(ref, specificlocationvariable).then( function(val) {
  specificScreenname = val.val();
});

你没有指定“JavaScript”以外的其他内容所以请记住,Promises是一个带有一些兼容性问题的ECMAScript 6提案,但很多JS框架都有一个实现它来解决这个问题(Angular,Ember)等等。)