javascript - 根据值从 Firebase JSON 树获取特定值

标签 javascript json firebase

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

users
     session1
          screenname:Bill
     session2
          screenname:Steve

...并且我知道 session 号,如何获取用户的“名称”?我已经尝试过:

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

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

最佳答案

您已经非常接近了,但需要使用 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”之外,您没有指定其他内容,因此请记住,Promise 是一个 ECMAScript 6 提案,存在一些兼容性问题,但许多 JS 框架都有一个实现来解决该问题(Angular、Ember)等)。

关于javascript - 根据值从 Firebase JSON 树获取特定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28863082/

相关文章:

Android Java UTF-8 JSON

javascript - 如何从 firestore 中的两个集合中获取数据?

javascript - 如何防止 Bootstrap 使字体变粗?

javascript - 创建连接到其他形状的 Canvas 形状

mysql - 确定 JSON 值是否包含指定属性的 SQL 查询

php - 如何在url中使用echo

swift - 从自动 ID 数据库子项中检索数据

firebase - 从 flutter 火的火力中获取时间时出错?

javascript - 迭代object中的所有属性,查找并替换

javascript - 想要每小时更改一次数组的选定元素