[英]How to retrieve data from firebase in web with JavaScript
我有类似于这里 A3 的按钮。 我想从我的数据库中检查座位的可用性,并在 if 循环中进行相应的操作。 但是我在 firebase 参考下的功能都没有工作。
我的数据库是
My web (app)
|
Seats(node)
|
Status (node)
|
A1 - available (value)
A2 - available (value)
A3 - available (value)
A4 - available (value)
我的js脚本是
function A3(){
var newseat = document.getElementById("A3");
var firebaseStatusRef = firebase.database().ref().child("Status");
var firebaseSeatStatusRef = firebaseStatusRef.child("A3");
firebaseSeatStatusRef.on('child_added', snap => {
var seatStatus = snap.val();
});
if (firebaseSeatStatusRef=="available") {
newseat.className="booked-seat";
newseat.setAttribute("class" , "booked-seat");
firebaseStatusRef.child("A3").set("booked");
var fill = newseat.value;
document.getElementById("fill").value += fill + " ";
Seat();
} else {
newseat.style.backgroundColor = 'seat';
newseat.setAttribute("class" , "seat");
var fill = newseat.value;
document.getElementById("fill").value -= fill + " ";
BookedSeat();
}
}
您的支票归结为:
var firebaseStatusRef = firebase.database().ref("Seats/Status");
var firebaseSeatStatusRef = firebaseStatusRef.child("A3");
if (firebaseSeatStatusRef=="available") {
这在 Firebase 实时数据库 API 中没有意义,因为您还没有从数据库中读取值。 为此,您需要附加一个侦听器,然后根据该值检查您获得的快照。 就像是:
firebaseSeatStatusRef.on('value', snap => {
var seatStatus = snap.val();
if (seatStatus == "available") {
...
}
});
请注意,任何需要访问数据库数据的代码都必须在回调块内。
这是与 Firebase 实时数据库的相当基本的交互,因此您最好研究有关读取值的Firebase 文档,并可能参加Firebase 代码实验室。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.