firebase服务器使用管理员权限进行身份验证

时间:2016-07-12 19:17:58

标签: node.js firebase firebase-authentication firebase-security

我正在尝试使用node {s Here设置firebase服务器。但是,我的代码无法使用管理员权限从任何表中读取数据或从中获取数据,即使是具有公共读写权限的表。

这是我在服务器端的代码:

var firebase = require('firebase');
firebase.initializeApp({
serviceAccount: "./App.json",
databaseURL: "https://userPosts.firebaseio.com"
});
//
var db = firebase.database();
var ref = db.ref("testPosts");

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

以下代码是如何在服务器上设置安全性:

"rules": {
  "users": {
    "$uid": {
      ".read": "auth != null && auth.uid == $uid",
      ".write": "auth != null && auth.uid == $uid"
    }
  },
"testPosts": {
    ".read": "auth != null",
    ".write": "auth != null"
  }
}

如果我在服务器端注释serviceAccount行,则会在没有问题的情况下读取数据,当我尝试访问它没有访问权限的节点时,访问将被拒绝(这是正常行为)。

我对Firebase管理员权限的理解是,无论访问权限如何,我都应该可以访问所有表节点。

如果有人可以帮助解决这个问题我真的很感激。我已经坚持了一段时间了。

-----------------------编辑----------------

我已通过添加

启用了调试功能
firebase.database.enableLogging(true);

我收到以下错误:

p:0: Listen called for /posts default
p:0: Making a connection attempt
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)
p:0: data client disconnected
p:0: Trying to reconnect in 77.64995932509191ms
0: onDisconnectEvents

任何人都可以帮助解决错误及其真正意义吗?

1 个答案:

答案 0 :(得分:0)

经过一些挖掘,看来我的服务器时间就是问题所在。 我的服务器时间与Network Time Protocol (NTP)不同步。

如果有人遇到同样的问题,以下link可能会有用。

相关问题