0

Hereのようにnodejsを使用してfirebaseサーバを設定しようとしています。しかし、私のコードは、パブリックの読み書きアクセス権を持つものであっても、管理者権限を使ってテーブルを読み書きすることはできません。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); 
}); 

次のコードは、セキュリティがサーバー上で設定されている方法です。私は、サーバー側でserviceAccountの行をコメントした場合

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

アクセスがないノードにアクセスしようとするとアクセスは拒否されます(これは通常の動作です)。

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 

は、誰もがエラーとそれが本当に意味を助けることはできますか?

答えて

0

いくつかのデジギングの後で、私のサーバー時間が問題だったようです。 私のサーバーの時刻がNetwork Time Protocol (NTP)と同期していませんでした。

誰かが同じ問題を抱えている場合は、次のlinkが役に立ちます。

+0

かみそり、1つ質問ください。 App.jsonファイルには何がありますか?あなたの信用状、電子メール、パスワード? ありがとう! –

+0

app.jsonはfirebaseコンソールから生成されたファイルです。プロジェクトID、秘密鍵、クライアント電子メールなどのフィールドが含まれています。 ppasswordは含まれていません – Razor

関連する問題