私はアプリケーションのAPIとして動作する一連のFirebase関数を持っています。管理者権限でFirebase Cloud機能からデータベース認証を偽装する方法は?
これらFirebase機能は、このよう管理者権限でデータベースに接続します。
const serviceAccount = require(`./config/xxx-firebase-adminsdk.json`);
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: DATABASE_URL,
});
私はカスタムトークンを作成することができたと私は/受信サーバーでそれをデコードするが、私は使用することはできませんよFirebase機能は管理者権限で認証されているため、セキュリティルールには影響しません。
資格情報を偽装する方法や、データベースにアクセスする際に別のユーザーを渡す方法はありますか?
私はそれを試みましたが、 "initializeApp"は一度しか呼び出せないと言います。私が従おうとしているパターンはそれほど奇妙ではありません。私はなぜドキュメントに記述されていないのか疑問に思っています。サービスのアクセスレベルを下げるためにuidを上書きできるとしか言いません。 – martosoler
これで、デフォルトのFirebaseAppオブジェクトを既に別の場所に初期化しておく必要があります。デフォルト以外のインスタンスを初期化し、2番目のパラメータに渡す名前を付ける必要があります。私は一致する答えを更新しました。 –