Admin SDK 不再从 firebase 捕获事件
No longer captures the event from firebase by Admin SDK
我已经在我的节点服务器上安装 运行 firebase admin,直到今天它一直 运行 运行良好,没有任何错误告诉我发生了什么,它只是停止工作。
var admin = require("firebase-admin");
var serviceAccount = require("mycom-firebase-adminsdk-d1ebt123456.json");
var app = FireBaseAdapter.admin.initializeApp({
credential: FireBaseAdapter.admin.credential.cert(serviceAccount),
databaseURL: "https://xxxx.firebaseio.com"
});
var db = app.database();
var ref = db.ref("messages"); // this node actually exists in my db.
ref.on("value", function(snapshot) {
// this will never be called - which has been working before.
console.log(snapshot.val());
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
我什至将它包装在 try catch 中以打印出错误,但没有任何错误。我可以在帐户中登录 firebase 控制台并看到我的数据库没有任何变化(小数据库)(虽然它似乎比正常情况下慢)。
firebase Admin SDK 有问题吗?感谢任何帮助。
在花了很多时间查找原因后,我找到了问题所在。
由于我找不到任何方法来启用 firebase-admin 的日志,所以在一切都静默运行的情况下解决问题是死路一条,所以我转而使用 firebase 包来有记录
var firebase = require("firebase");
firebase.initializeApp({
databaseURL: "https://xxxxx.firebaseio.com",
serviceAccount: '....'
});
firebase.database.enableLogging(true); // <=== important
我的问题与this question
非常相似
然后我可以看到实际的错误:
p:0: Failed to get token: Error: Error refreshing access token:
invalid_grant (Invalid JWT: Token must be a short-lived token and in a
reasonable timeframe)
上解释了此问题的解决方案。这个问题是由于执行代码的计算机时钟同步不良造成的,延迟了 5 分钟(由于内部时钟的电池故障)。
当我手动将我的计算机的内部时间更改为正确的时间(或者我完全重置了我的计算机日期时间)时,它又开始工作了。
在我的例子中,重置日期时间和时区后,firebase 自动再次运行,我不需要重新生成另一个服务帐户。
我已经在我的节点服务器上安装 运行 firebase admin,直到今天它一直 运行 运行良好,没有任何错误告诉我发生了什么,它只是停止工作。
var admin = require("firebase-admin");
var serviceAccount = require("mycom-firebase-adminsdk-d1ebt123456.json");
var app = FireBaseAdapter.admin.initializeApp({
credential: FireBaseAdapter.admin.credential.cert(serviceAccount),
databaseURL: "https://xxxx.firebaseio.com"
});
var db = app.database();
var ref = db.ref("messages"); // this node actually exists in my db.
ref.on("value", function(snapshot) {
// this will never be called - which has been working before.
console.log(snapshot.val());
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
});
我什至将它包装在 try catch 中以打印出错误,但没有任何错误。我可以在帐户中登录 firebase 控制台并看到我的数据库没有任何变化(小数据库)(虽然它似乎比正常情况下慢)。 firebase Admin SDK 有问题吗?感谢任何帮助。
在花了很多时间查找原因后,我找到了问题所在。 由于我找不到任何方法来启用 firebase-admin 的日志,所以在一切都静默运行的情况下解决问题是死路一条,所以我转而使用 firebase 包来有记录
var firebase = require("firebase");
firebase.initializeApp({
databaseURL: "https://xxxxx.firebaseio.com",
serviceAccount: '....'
});
firebase.database.enableLogging(true); // <=== important
我的问题与this question
非常相似然后我可以看到实际的错误:
p:0: Failed to get token: Error: Error refreshing access token: invalid_grant (Invalid JWT: Token must be a short-lived token and in a reasonable timeframe)
在我的例子中,重置日期时间和时区后,firebase 自动再次运行,我不需要重新生成另一个服务帐户。