存储firebase数据库检索

时间:2018-02-19 17:37:37

标签: javascript node.js firebase firebase-realtime-database

我正在尝试存储从firebase数据库中检索的文本,但是当我将datasnapshot.val()分配给变量时,它似乎没有任何效果。

var ref = firebase.database().ref().child("Text");
var output = "initial";
ref.on('value',function(datasnapshot){
output = datasnapshot.val();
})
console.log(output);

console.log仍然输出" initial"。这是为什么?

1 个答案:

答案 0 :(得分:1)

Firebase API是异步,这意味着对数据的查询(在您的情况下为on()方法)将立即返回,并且结果将在稍后的某个时间发送给您回调。您的代码希望立即收到结果,这不会发生。在结果可用于回调之前,on()方法返回后立即执行日志行。

您应该在回调中完全处理 回调,而不是尝试使用 回调,它们首先可用:

ref.on('value',function(datasnapshot){
    output = datasnapshot.val();
    console.log(output);
})

另请read this blog post详细了解Firebase异步API,以及它们的设计原因。