Firebaseのクラウドファンクションが特定の場所にデータを書き込むことを許可するルールでデータベースを保護するには、以前はadminクライアントdatabaseAuthVariableOverride
にuidを追加するオプションがありました。規則セクションでは、今私たちはadmin.initializeApp(functions.config().firebase);
経由で初期化ので、私は、追加のparamsを追加する方法について確認していないよ。Firebaseのクラウド機能にのみ書き込みアクセスを許可する
EDIT ではなく、このために証明書を使用して開始することをお勧めしますか?すなわちadmin.initializeApp(functions.config().firebase)
が終わっ以上持っているとfunctions.config()
が実際のデータを取得しているところ、この単なるノードモジュールではないんどのような利点
admin.initializeApp({
credential: admin.credential.cert("/path-to-cert"),
databaseURL: "database-url",
databaseAuthVariableOverride: { uid: "some-id" }
});
?
IIRC、 'Object.assignへの引数の順序() 'が重要です。まれに、 'functions.config()。firebase'に' databaseAuthVariableOverride'プロパティが含まれていると、あなたが上で指定したものを上書きします。 'Object.assign({}、functions.config()。firebase、{/ *あなたの上書きする値* /}) 'を使うことをお勧めします。 – samthecodingman
代わりにカスタムサービスワーカーの証明書で管理者を開始することをお勧めしますか? – Ilja
@Ilja - できることですが、 'functions.config()。firebase'で提供されている資格情報を使ってこれを行うと利点はありません。そして、それはあなた自身のサービスアカウントキーファイルを管理する必要があります。これは一般に悪い習慣です。 @samthecodingman - チップをありがとう。コードサンプルを更新しました。 – jwngr