【问题标题】:Get specific value from Firebase JSON tree based on value根据值从 Firebase JSON 树中获取特定值
【发布时间】:2015-03-04 19:24:13
【问题描述】:

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

users
     session1
          screenname:Bill
     session2
          screenname:Steve

...而且我知道会话号,如何获取用户的“名称”?我试过这个:

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

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

【问题讨论】:

标签: javascript json firebase


【解决方案1】:

您已经很接近了,但需要使用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等)。

【讨论】:

    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2019-03-30
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多