Firebase引用。on()未触发

Firebase引用。on()未触发,firebase,reference,callback,firebase-realtime-database,Firebase,Reference,Callback,Firebase Realtime Database,在使用GoogleMapsAPI传输跟踪器教程时,除了.on()回调之外,其他一切似乎都正常工作。所有的回调似乎都没有被触发 单击记录到控制台的引用链接时,会显示预期的Firebase数据库路径,并定期更新。但是,下面的回拨从未触发 firebase.initializeApp(firebaseConfig); const db = firebase.database(); console.log('Adding callback for current-time changes'

在使用GoogleMapsAPI传输跟踪器教程时,除了.on()回调之外,其他一切似乎都正常工作。所有的回调似乎都没有被触发

单击记录到控制台的引用链接时,会显示预期的Firebase数据库路径,并定期更新。但是,下面的回拨从未触发

  firebase.initializeApp(firebaseConfig);
  const db = firebase.database();

  console.log('Adding callback for current-time changes');
  var ref = db.ref('current-time');
  console.log('ref = '+ref);
  ref.on('value', snapshot => {
    console.log('Current-time snapshot');
    displayTimeElement.textContent = snapshot.val().display;
    console.log(snapshot.val().display);
  });
控制台记录以下内容

Adding callback for current-time changes
index.js:500 ref = https://transport-tracker-XXXXX.firebaseio.com/current-time
控制台消息“未被记录”以及HTML页面的displayTimeElement值“从未更新”都确认不会触发回调。我还尝试在回调中设置断点,但从未达到

因此,我唯一能做的假设是回调永远不会因为未知的原因触发


感谢您提供的帮助。

如下图所示,为CancelCallback或Context添加回调后,它记录我的应用程序没有读取权限

  db.ref('current-time').on
    ('value'
    ,snapshot => {
        displayTimeElement.textContent = snapshot.val().display;
        }
    ,error => {console.log(error);}
    );
将数据库身份验证规则更改为:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
一切都按要求进行


如果Transport Tracker教程提到这一点,那就太好了…

在为CancelCallback或Context添加回调后,如下图所示,它记录了我的应用程序没有读取权限

  db.ref('current-time').on
    ('value'
    ,snapshot => {
        displayTimeElement.textContent = snapshot.val().display;
        }
    ,error => {console.log(error);}
    );
将数据库身份验证规则更改为:

{
  "rules": {
    ".read": true,
    ".write": true
  }
}
一切都按要求进行


如果Transport Tracker教程提到这一点,那就太好了……

我没有提到我正在使用Chrome查看页面。我没有提到我正在使用Chrome查看页面。