简单的Firebase数据检索

时间:2014-09-20 00:23:25

标签: javascript firebase

我只是尝试执行简单的firebase数据检索。这就是我所拥有的

var fb = new Firebase("https://<my-app>.firebaseio.com");

fb.on('value', function(snapshot) {
  var db = snapshot.val();
  var speed = db['speed'];
 });

console.log(speed);

rnd = Math.floor( Math.random() * 7 );
fb.set({ speed: rnd});

我遇到的问题是速度卡在fb.on区域内。我怎么把它拿出来?

1 个答案:

答案 0 :(得分:3)

您的代码没有卡住,您的调用不正确。

fb.on('value', function(snapshot) {
  var db = snapshot.val();
  var speed = db['speed'];
});

这里提供一个带有局部变量speed的回调函数。这个变量可能设置正确,但你没有做任何事情。

console.log(speed);

rnd = Math.floor( Math.random() * 7 );
fb.set({ speed: rnd});

此代码在您设置事件处理程序(fb.on( 'value', ... ))后直接运行,但该代码以异步方式运行。此函数不仅可能不会在此时运行,而且在这里您正在访问未声明的变量speed,并且因为它未被声明它是一个自动全局变量window.speed,而不是本地回调函数中的变量speed

移动回调函数内部的console.log以在正确的时间执行它。此外,始终声明您的变量。