Firebase节点SDK ref.on和ref.once无法正常工作

时间:2018-01-27 23:22:37

标签: firebase firebase-authentication

我已经使用firebase几年了,我没有碰到这个 - 我相信这是Google帐户/ Firebase帐户相关的。

这个基本代码不会进入ref.on()或ref.once()函数 - 成功或错误回调。这笔交易是什么?

var firebase = require('firebase');
var admin = require('firebase-admin');

const serviceAccount = require('../firebase-security.json');

admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: 'https://swc-shockball3.firebaseio.com/'
});

var db = admin.database();

console.log('trying to get ref .once')
var itemsRef = db.ref('items');

itemsRef.once('value', function(snapshot) {
   // never gets here
  console.log(snapshot)
}, function(error) {
  // doesn't get here either
  console.log('error is')
  console.log(error)
})

我发现如果我在console.log中,itemsRef本身会返回一个较大的firebase-y对象。我也可以记录itemsRef.once.toString(),它会记录函数签名,但是调用它实际上不能正常工作。

我确保我对数据库的权限是读/写为真(布尔值)。我确保我的serviceAccount的json是正确的 - 我甚至彻底清除了我的firebase项目并创建了一个新项目。

是什么给出了?

1 个答案:

答案 0 :(得分:0)

我打开了admin.database.enableLogging(true),然后可能会看到错误消息是Googal OAuth令牌无效授予错误。我创建了一个新的服务帐户,没有变化。

但后来我只是将我的本地机器(Windows 10)时间设置更改为自动时间/自动日期。修好了!