Firebase管理员sdk(node.js)数据库请求冻结

时间:2016-11-11 20:14:58

标签: node.js firebase firebase-realtime-database

最近几天,我在Android和服务器节点js&fire;' firebase'中遇到了我的旧firebase sdk的一些问题。 SDK。发送通知和检索数据。 在我用最新版本更新了android依赖项之后,通知问题就解决了。 但在服务器端:

以下示例出现问题:

var admin = require("firebase-admin");
var serviceAccount = require("filepath.json");

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount),
    databaseURL: "https://dbname.firebaseio.com"
});

var db = admin.database();
var ref = db.ref("myval");

ref.once("value",function(snapshot){
    console.log(snapshot.val());
});

示例不返回任何值或错误,只是等待。当然有“myval'主数据库树下的子项。

可能导致问题的原因是什么?

1 个答案:

答案 0 :(得分:1)

在firebase团队的帮助下解决了这个问题。

使用以下命令在数据库定义之前启用日志记录:

admin.database.enableLogging(true);
var db = admin.database();

有助于调试。之后我收到了错误:

无法获取令牌:错误:获取访问令牌时出错:invalid_grant(无效的JWT:令牌必须是一个短期令牌并且在合理的时间范围内)

根据这个: Authentication on google: OAuth2 keeps returning 'invalid_grant' 我的机器时区没有与ntp服务器正确同步,这在我的情况下是新的管理员身份验证所必需的。

然后(在ubuntu 14.04中)设置时区(时区在这里:' $ timedatectl list-timezones'):

$ sudo timedatectl set-timezone desired_timezone

解决了这个问题!

感谢您的帮助。