完成回调未在firebase 3.0.2中的set方法上执行

时间:2016-05-19 09:40:06

标签: node.js firebase

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

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 Executed”消息。

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

我的问题是完成回调从未执行。我在这里缺少什么?

2 个答案:

答案 0 :(得分:1)

使用set -

返回的承诺
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);
});

答案 1 :(得分:1)

3.0.3中修复了一个会导致代码运行的错误,但如果在没有适当权限的情况下使用无效的服务帐户,则身份验证会无提示失败。尝试升级到3.0.3版,并尝试通过firebase.database.enableLogging(true)启用调试。我觉得您需要通过here说明重新生成服务帐户JSON文件。