javascript - 从firebase javascript获取价值后运行一些东西
问题描述
我有一个 javascript 函数,它从 firebase 实时数据库中的节点获取一些值。JS代码是:
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');
<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 获取值完成后访问一些东西。我该怎么做?
解决方案
由于.once
返回一个承诺,您可以链接一个.then
块以在执行后运行您想要的代码.once
。
参考:https ://firebase.google.com/docs/reference/js/firebase.database.Reference#once
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
.
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 承诺的更多信息: https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
推荐阅读
- xml - 使用目标 XML 上的 XSLT 转换属性将 XML 转换为 XML
- math - “反转” x(integer) 给出三角图的 y=0
- python - 无法弄清楚为什么我收到语法错误
- r - geom_ribbon 跳过可用数据(有时)
- botframework - 在 Microsoft BOT 框架中添加两条消息之间的延迟
- batch-file - 批处理文件将包含文件的目录从一个位置复制到文件所在的当前目录
- javascript - 在 Vue.JS 中从循环 OnClick 播放特定视频
- flutter - 如何在 Flutter 的 2 个小部件之间定位 FAB?
- postgresql - pg_repack 和逻辑复制:在运行 pg_repack 时错过表中的更改是否有风险?
- react-native - React Native 中的谷歌地图