根据值从 Firebase JSON 树中获取特定值
Get specific value from Firebase JSON tree based on value
我正在使用 Firebase 编写 Javascript 网络应用程序。如果我的 JSON 树中有这样的数据:
users
session1
screenname:Bill
session2
screenname:Steve
...而且我知道会话号,我怎样才能抓取用户的"name"?我试过这个:
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' 你没有指定其他内容所以请记住,Promises 是一个 ECMAScript 6 提议,有一些兼容性问题,但是很多 JS 框架都有一个实现来解决这个问题(Angular、Ember 等)。
我正在使用 Firebase 编写 Javascript 网络应用程序。如果我的 JSON 树中有这样的数据:
users
session1
screenname:Bill
session2
screenname:Steve
...而且我知道会话号,我怎样才能抓取用户的"name"?我试过这个:
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' 你没有指定其他内容所以请记住,Promises 是一个 ECMAScript 6 提议,有一些兼容性问题,但是很多 JS 框架都有一个实现来解决这个问题(Angular、Ember 等)。