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
は、誰もがエラーとそれが本当に意味を助けることはできますか?
かみそり、1つ質問ください。 App.jsonファイルには何がありますか?あなたの信用状、電子メール、パスワード? ありがとう! –
app.jsonはfirebaseコンソールから生成されたファイルです。プロジェクトID、秘密鍵、クライアント電子メールなどのフィールドが含まれています。 ppasswordは含まれていません – Razor