在学习Google Maps APIs Transport Tracker教程的过程中,除了.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值永远不会更新。我也尝试过在回调中设置断点,但是一直没有达到。
因此,我能做的唯一的假设就是回调永远不会因为某种未知的原因而触发。
谢谢你提供的任何帮助。
发布于 2017-06-30 23:29:02
如下所示,为cancelCallbackOrContext添加回调后,它记录了我的应用程序没有读取权限。
db.ref('current-time').on
('value'
,snapshot => {
displayTimeElement.textContent = snapshot.val().display;
}
,error => {console.log(error);}
);将数据库身份验证规则更改为:
{
"rules": {
".read": true,
".write": true
}
}一切都按要求工作。
如果Transport Tracker教程提到这一点,那就太好了……
https://stackoverflow.com/questions/44806786
复制相似问题