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

最近几天,我在android和服务器节点js的firebase的sdk中遇到了一些老的firebase sdk的问题。 发送通知和检索数据。 我更新了最新版本的Android依赖关系后,通知问题解决了。 但在服务器端:

  • 安装的Firebasepipe理员SDK。
  • 按照说明: https ://firebase.google.com/docs/admin/setup并检查了firebase-adminsdk服务帐户的angular色。

问题与下面的例子:

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'的孩子。

什么错误可能会导致这个问题?

       

网上收集的解决方案 "Firebasepipe理员sdk(node.js)数据库请求冻结"

通过firebase团队的帮助解决了这个问题。

在数据库定义之前启用日志logging:

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

有助于debugging。 之后,我得到了错误:

获取令牌失败:错误:获取访问令牌时出错:invalid_grant(无效的JWT:令牌必须是短期令牌,并且在合理的时间段内)

并据此: 谷歌身份validation:OAuth2不断返回'invalid_grant'我的机器时区没有正确同步ntp服务器,这是新的pipe理身份validation所需的我的情况。

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

$ sudo timedatectl set-timezone desired_timezone

解决了问题!

感谢您的帮助。