繁体   English   中英

Firebase将收到的数据分配给变量

[英]Firebase assign recieved data to variable

我当时正在开发一个Web应用程序,以前曾注意到Firebase不允许我做这样的事情,但是能够找到解决方法,但是如果我能得到如下所示的查询来按照我希望他们的方式操作,那会容易得多。 :

var testString='asdf';
firebase.database().ref('testing').once('value', function (snapshot) {
  testString=snapshot.val();
  console.log('Data val: ' + snapshot.val());
});
console.log('Val after: ' + testString);

运行时,这为我提供了控制台输出:

Val after: asdf
Data val: testval

而不是我所期望的:

Data val: testval
Val after: asdf

似乎Firebase侦听器在调用时不执行查询。 我仔细阅读了文档,但没有找到任何可以帮助解决此问题的方法。

提取数据的Firebase SDK API都是异步的。 Once()方法是异步的,这意味着它在另一个线程实际执行提取操作时立即返回。 它返回一个承诺,该承诺将在工作完成时解决。 您无法更改其工作方式-必须使用异步编程技术。 您可以期望,在完成异步工作之前,对now()调用之后的下一行代码将立即执行。

相反,您要做的是将处理快照的代码完全放在回调中。 或者,您可以使用返回的Promise来触发一些代码,这实际上也是对函数的回调。 这些是您唯一的选择。

暂无
暂无

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

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