2016-11-11 63 views
2

最近几天,我在android和服务器节点js的firebase'sdk中遇到了一些旧的firebase sdk问题。发送通知和检索数据。 我更新了最新版本的android依赖项后,通知问题解决了。 但在服务器端:Firebase管理员sdk(node.js)数据库请求冻结

问题的下面的示例:

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

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

启用与数据库定义之前记录:

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

帮助进行调试。从那以后,我得到了错误:

无法获得令牌:错误:错误获取访问令牌:invalid_grant(无效的智威汤逊:令牌必须是一个短暂的令牌,并在合理的时间内)

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

然后(在Ubuntu 14.04)设置时区(时区所在的位置: '$ timedatectl列表时区'):

$ sudo的timedatectl设置时区desired_timezone

解决了这个问题!

感谢您的帮助。