从Web应用程序上的Firebase读取和显示数据

时间:2019-11-02 13:59:00

标签: javascript firebase

尝试构建一个简单的Firebase Web应用程序。我有以下内容:

<html>
  <head>
    <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-app.js"></script>
    <script src="https://www.gstatic.com/firebasejs/7.2.3/firebase-database.js"></script>
  </head>
  <body>
    <script>
      // Your web app's Firebase configuration
      var firebaseConfig = {
        apiKey: "secret",
        authDomain: "secret",
        databaseURL: "secret",
        projectId: "secret",
        storageBucket: "secret",
        messagingSenderId: "secret",
        appId: "secret"
      };
      firebase.initializeApp(firebaseConfig);

      var database = firebase.database().ref('blacklist');
      database.on("value", function(snapshot){
        console.log(snapshot.val());
      });

    </script>
    <script src="app.js"></script>
  </body>
</html>

我的Firebase结构如下enter image description here

此刻我要做的就是在控制台中打印数据。控制台为空,不是错误或正在显示任何内容?您能协助显示数据吗?我试图显示每个的fromId和toId。

2 个答案:

答案 0 :(得分:0)

类似的事情曾经发生在我身上,但它在Android应用程序中。如果我看到完整的数据库结构,请尝试添加一个内部分支,像这样在黑名单中的任何一个,然后查看是否获得“值”

var database = firebase.database().ref('Li2.../' + 'blacklist');

解释为什么我请您尝试一下;在此链接https://firebase.google.com/docs/database/web/read-and-write中说

  

典型用法

     

:读取和侦听路径全部内容的更改。

当我在Android上尝试此操作时,似乎没有将“ 路径”视为“ ”,因此,如果路径中没有显式数据,则它不会打印以进行调试,但会为有数据的用户进行打印。在链接中,我说

  

如果没有数据,则在调用时快照将返回false   存在(),当您在其上调用val()时为null。

我认为这将帮助您找到问题所在。

答案 1 :(得分:0)

因为我只是将其用于开发目的,所以我发现我需要将应用程序的权限设置为:

{
  "rules": {
    ".read": "true",
    ".write": "true"
  }
}

我使用的上述代码正确无误,并且可以正常工作