Firebaseの完全な読み取り/書き込みアクセスのためにFirebaseの管理者としてFirebaseで認証できる方法はありますか(すでにその一部を保護するセキュリティルールがあります)、または何らかの方法で特定のパスワード/キーを提供するなど、完全なファイアベース。
これを行うための標準的な方法または推奨される方法はありますか?
authWithCustomTokenはsignInWithCustomTokenになりました(firebaseバージョン3.x)
ドキュメントの例:
firebase.auth().signInWithCustomToken(token).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
if (errorCode === 'auth/invalid-custom-token') {
alert('The token you provided is not valid.');
} else {
console.error(error);
}
});
Andrewの答えは、クライアント側のコードの外部で認証している場合にのみ機能します(そうでない場合は、MY_SECRET
明らかに)。私のような多くの人がFirebaseを使用してサーバーコードを回避しているため、別の答えがあります。
ほとんどのfirebaseアプリでは、単純なログイン「auth」オブジェクト(電子メールとパスワードのみを保存する)に加えて、おそらく「Users」オブジェクトがあります。 「Users」オブジェクトの各$ userに「isAdmin」または「isModerator」(または必要なもの)を追加できます。
そして、ルールは次のようになります(auth.idが$ userキーと一致すると仮定します):
{
"rules": {
"someObject": {
".write": "root.child('Users').child(auth.uid).child('isAdmin').val() == true"
}
}
}
はいあります。認証トークンの代わりにFirebase Secretを使用して認証する必要があります。すなわち。
firebaseRef.auth(MY_SECRET);
Forgeの認証セクションで秘密を見つけることができます。
ドキュメントによる 、firebaseRef.authWithCustomToken
を使用する必要があります。
例;
firebaseRef.authWithCustomToken(FIREBASE_SECRET, function(error, authData) {
if(!error) {
// You are authenticated
}
});
firebaseRef.auth
は非推奨になりました。代わりにfirebaseRef.authWithCustomToken
を使用してください。