我试图访问简单的Firebase数据库(https://blazing-fire-6348.firebaseio.com)并分别存储其值,但它们未正确存储。下面的代码会分析出所有10个,而不是存储在Firebase中的值。我不认为我的问题只是范围,而是Firebase语法。代字号是网址,stackoverflow只是不会让我多次发布链接。尝试从Javascript中读取Firebase变量
感谢您提供的任何帮助。
var dataRef = new Firebase("~~~/a");
dataRef.on('value', function(snapshot) {
// this code will only execute once the server *returns* a value for a
});
// this code will execute straight after the call to the server has *started*
您的代码将引发三个电话到火力地堡服务器,每一个都可以采取:
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函数之外的变量。 – James
当底部的'alert's显示时,您可以**随时随地访问**变量。但是,在dataRef.on('value''回调触发之后,它们将不具备远程Firebase的价值,它来自AJAX调用的异步特性,鉴于您所看到的行为是完全预期的,也许您可以用另一种方式描述你正在努力完成的任务 –