如何使用JavaScript从web中的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

我有类似于这里的按钮。我想从我的数据库中检查座位的可用性,并在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.Database().ref().child(“状态”)
您的图表显示,在status上方有一个
Seats
节点,因此它是
firebase.database().ref().child(“Seats/status”)谢谢你,弗兰克,但仍然没有任何效果,甚至数据库也没有更新