javascript - Firebase .on ('value' ) 不工作

标签 javascript firebase firebase-realtime-database

我正在关注此视频 here .

这是我的代码。

index.html

<!DOCTYPE html>
<html>
    <head>
        <title>Fire Test</title>
        <script src="https://www.gstatic.com/firebasejs/3.2.1/firebase.js"></script>
    </head>
    <body>

        <!-- Value -->
        <pre id="object"></pre>

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

app.js

(function () {

    // Initialize Firebase
    var config = {
        apiKey: "AIzaSyCOJZqfas4gxwEYBbRNyyIy7Z9vEsTx4ME",
        authDomain: "fire-test-e2185.firebaseapp.com",
        databaseURL: "https://fire-test-e2185.firebaseio.com",
        storageBucket: "fire-test-e2185.appspot.com",
    };

    firebase.initializeApp(config);

    var preObject = document.getElementById('object');


    // Create reference 
    var dbRefObject = firebase.database().ref().child('object')

    console.log('test log'); // logging

    // Sync object changes
    dbRefObject.on('value', function (snap) {
        console.log(snap.val()); // not logging
    });

    console.log('test log'); // logging
})();

输出

enter image description here

顺便说一下

以下是我的测试项目的结构,以防万一。

fire-test
    |_ index.html
    |_ app.js

我在 /var/www/html/fire-test 下的 apache 上运行它

http://localhost/fire-test/

最佳答案

实际上 firebase 的数据库有它的身份验证,我发现我的数据库的规则没有正确设置(公开)。

我改变了这个:

{
    "rules": {
        ".read": "auth != null",
        ".write": "auth != null"
    }
}

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

"auth != null"true

注意

以这种方式设置规则不是一个好主意。我们不希望任何人访问 root 节点。虽然在这个答案中,这只是为了测试 firebase 连接。

关于javascript - Firebase .on ('value' ) 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38774247/

相关文章:

javascript - Firebase 数据库监听器被明显非阻塞循环阻止

javascript - CSS - 双倍行距文本但单倍行距文本选择

javascript - AngularJS 在应用程序启动时加载数据

javascript - ref 内的代码一旦不执行 angularjs

firebase - 如何检查订阅是否完成加载所有现有行?

javascript - Firebase 管理员 : How to promisify a push operation

javascript - 禁用/启用提交按钮,直到填写完所有表格

javascript - JS | IE中的addEventListener方法来自哪个接口(interface)?

android - 将多个值保存到单个用户 - Firebase

typescript - Firebase HTTPS 函数 - 在完成后台工作之前响应 200 状态代码