从Firebase Web检索数据

时间:2017-01-03 14:25:50

标签: javascript firebase firebase-realtime-database

尝试了多种不同的方式让它发挥作用。目的是有一个欢迎盒,如果用户之前已经看过它就不会出现。如果我的数据库中的“活动”字段显示1,则欢迎div不应显示。

document.onload = function() {
  var active
  var user = firebase.auth().currentUser;
  var uid;

  if (user != null) {
    uid = user.uid;
  }

  firebase.database().ref("Users/" + uid + '/Active').on("value", function(snapshot) {
    snapshot.forEach(function(childSnapshot) {
      var active = childSnapshot.val();
      if (active = 1) {
        document.getElementById("welcome").style.display = "none";
        document.getElementById("box").style.display = "none";
        document.getElementById("title").style.display = "none";
        document.getElementById("text").style.display = "none";
      }
    });
  });
};

enter image description here

提前感谢您提供任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

您需要读取对象的属性 - childSnapshot.val()。active。

恭敬地,你正在倒退。如果用户不在数据库中,则需要显示欢迎卡。如果用户在数据库中,他们可能已经与应用程序进行了交互并看到了欢迎卡。

欢迎卡应该由CSS display: none隐藏,以便在页面加载时不会闪烁或显示。

在我看来,使用布尔值,原生truefalse(注意单词周围没有引号)而不是1或0。在脚本顶部初始化var showWelcomeCard = false

确定您应该出示欢迎卡后,请出示;不是相反。

最后不要假设他们不想再看到欢迎/开始卡。为他们提供选择。一个复选框,上面写着“不再显示”。因此,请将属性从active更改为showWelcomeCard