首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在从firebase javascript获取值之后运行一些东西

在从firebase javascript获取值之后运行一些东西
EN

Stack Overflow用户
提问于 2020-06-25 20:52:53
回答 1查看 63关注 0票数 5

我有一个javascript函数,可以从firebase实时数据库中的一个节点获取一些值。JS代码为:

代码语言:javascript
运行
复制
var numZones;
var firebaseConfig = {
  apiKey: "",
    authDomain: "",
    databaseURL: "",
    projectId: "",
    storageBucket: "",
    messagingSenderId: "",
    appId: "",
    measurementId: ""
};
firebase.initializeApp(firebaseConfig);
  firebase.analytics();
  var db = firebase.database();
  var ref = firebase.database().ref("/LH121");
  ref.child("NumZones").once('value', function(snapshot)
  {
    numZones = snapshot.val();
    document.getElementById("zones").value = numZones;
    console.log('Got value');
  });
  console.log('After get value');
代码语言:javascript
运行
复制
<script src="https://www.gstatic.com/firebasejs/7.15.3/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.15.3/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.15.3/firebase-firestore.js"></script>
<script src="https://www.gstatic.com/firebasejs/7.15.3/firebase-database.js"></script>

<div class="container" style="text-align: center;">
  <div class="row">
    <input type="number" name="zones" id="zones" step="1">
   </div>
</div>

当从firebase获取值完成时,我想要访问一些东西。我如何做到这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-25 21:02:10

因为.once返回一个promise,所以您可以链接一个.then块,以便在.once执行之后运行您想要的代码。

参考:https://firebase.google.com/docs/reference/js/firebase.database.Reference#once

代码语言:javascript
运行
复制
ref.child("NumZones").once('value', function(snapshot)
  {
    numZones = snapshot.val();
    document.getElementById("zones").value = numZones;
    console.log('Got value');
  }).then(() => console.log("After get value"));

我建议您使用以下代码,而不是在.once上传递回调函数。

代码语言:javascript
运行
复制
ref.child("NumZones").once('value').then((snapshot) => {
    numZones = snapshot.val();
    document.getElementById("zones").value = numZones;
    console.log('Got value');
  }).then(() => console.log("After get value"));

有关javascript promises的更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62575817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档