繁体   English   中英

存储Firebase数据库检索

[英]Storing firebase database retrieval

我正在尝试存储从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”。 为什么是这样?

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

与其尝试在回调之外使用结果,不如在它们首先可用的回调内部完全处理它们:

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

另请阅读此博客文章 ,其中详细介绍了Firebase异步API以及为何如此设计。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM