我的Firebase數據庫的根部有一個{ hello: 'world'}
。每當我嘗試讀取hello
在Node中的值時,除非我修改Node進程中的值,否則不會執行回調。Firebase未按預期運行回調
這裏的once
電話:
let callback = (snapshot) => {
console.log('The value is ', snapshot.val());
};
db.ref('hello').once('value', callback);
在這一點上,我期望回調運行並打印「的值是世界上」印刷......但沒有任何反應。現在說我使用on
而不是once
。即使我修改Firebase Web控制檯或其他Node進程的值,仍不會調用回調!奇怪的是,所有這些代碼在具有相同庫版本(v3.0.2)的瀏覽器中按預期工作。
我設法執行回調的唯一方法是直接從同一個節點進程修改值。
db.ref('hello').once('value', callback);
db.ref('test').set('moon');
// => 'The value is moon.'
我已經創建了測試腳本repository幫助複製一個調試的問題。
您的節點處理是否正在退出?你確定在回調應該發生的時候它仍然在運行嗎? – dylanjha
是的Node進程仍在運行。 – fny
嘗試添加錯誤回調並查看它記錄的錯誤。 – Kato