如何使用JavaScript从web中的firebase检索数据
我有类似于这里的按钮。我想从我的数据库中检查座位的可用性,并在if循环中进行相应的操作。但是我在firebase引用下面的所有函数都不起作用 我的数据库是如何使用JavaScript从web中的firebase检索数据,javascript,html,web,firebase-realtime-database,Javascript,Html,Web,Firebase Realtime Database,我有类似于这里的按钮。我想从我的数据库中检查座位的可用性,并在if循环中进行相应的操作。但是我在firebase引用下面的所有函数都不起作用 我的数据库是 My web (app) | Seats(node) | Status (node) | A1 - available (value) A2 - available (value) A3 - available (v
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.Database().ref().child(“状态”)
您的图表显示,在status上方有一个Seats
节点,因此它是firebase.database().ref().child(“Seats/status”)代码>谢谢你,弗兰克,但仍然没有任何效果,甚至数据库也没有更新