【发布时间】:2014-03-05 01:13:15
【问题描述】:
我正在尝试访问一个简单的 Firebase 数据库 (https://blazing-fire-6348.firebaseio.com) 并单独存储其值,但它们没有正确存储。下面的代码吐出所有 10,而不是存储在 Firebase 中的值。我不认为我的问题只是范围,而是 Firebase 语法。波浪号是网站网址,stackoverflow 只是不允许我多次发布链接。
感谢您提供的任何帮助。
var a = 10; var b = 10; var c = 10;
var dataRef = new Firebase("~~~/a");
dataRef.on('value', function(snapshot) {
a = snapshot.val();
// alert(a);
});
var dataRef = new Firebase("~~~/b");
dataRef.on('value', function(snapshot) { if(snapshot.val() != null){
b = snapshot.val();
// alert(b);
} });
var dataRef = new Firebase("~~~/c");
dataRef.on('value', function(snapshot) { if(snapshot.val() != null){
c = snapshot.val();
// alert(c);
} });
alert(a); alert(b); alert(c);`
`
【问题讨论】:
-
如果您启用注释掉的警报,这些警报将显示正确的值。你试过了吗?
-
是的,他们会的。我正在寻找一种方法来访问 dataRef.on 函数之外的变量。
-
正如底部的
alerts 所示,您可以在任何地方访问变量。但在dataRef.on('value'回调触发之前,它们不会从远程 Firebase 获得价值。它来自 AJAX 调用的异步特性。鉴于您所看到的行为完全是意料之中的,也许您可以用另一种方式描述您想要完成的事情。
标签: javascript firebase