[英]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.