在firebase 3.0.2中的set方法上不执行callback

在我的Nodejs应用程序中,我试图使用下面的firebase 3.0.2模块将一些数据设置到我的firebase位置,名为“callback”。

var firebase = require('firebase'); firebase.initializeApp({ serviceAccount: "path/to/serviceAccountCredentials.json", databaseURL: "<My firebase url>" }); var db = firebase.database(); var callbackref = db.ref("callback"); console.log("Before Call"); callbackref.set("Some data", function (error) { console.log("Callback Executed"); }); console.log("After Call"); 

执行上面的代码后,我可以在我的控制台中看到消息如下

 "Before Call" "After Call" 

我可以在我的Firebase控制台中看到更新的数据到我的“callback”位置,但唯一的问题是我从来没有在我的控制台中收到“callback执行”消息。

我的Nodejs版本是5.5.0操作系统是Windows 10

我的问题是完成callback从未执行 。 我在这里错过了什么?

在3.0.3中修复了一个错误,这会导致你的代码运行,但是如果没有适当的权限给定一个无效的服务帐户,那么authentication将悄然失败。 尝试升级到3.0.3版,并尝试通过firebase.database.enableLogging(true)打开debugging。 我有一种感觉,你将需要重新生成您的服务帐户JSON文件通过这里的说明。

使用set返回的Promise –

 var usersRef = ref.child("users"); //ref is my root location dataRef.set("I'm writing data") .then(function(){ alert("Data saved successfully."); }) .catch(function(error){ alert("Data could not be saved." + error); });