1

私はfirebase関数を使用して、定義したfirebaseルールをテストするのが好きです。Firebaseのクラウド機能:既存のユーザーとしてデータベースに読み書きする方法は?

ルールが期待通りに機能するかどうかをテストするために、既存のユーザーとしてリアルタイムデータベースに読み書きしたいと思います。 admin.database().ref('/messages').push({original: 'some text'});

がどのように私は私がfirebaseではなく、管理者として作成したユーザーと同じ操作を行うことができます。

私は getting started pageに読ん

、私は以下のように管理者としてのリアルタイムデータベースに書き込むことができますか?

+0

あなたはどのような機能を書いていますか?データベーストリガー? –

+0

こんにちはダグ、私はHttp関数を書いてみたいです。この関数はすでに作成したユーザーとしてRealtime Databaseに書き込みます。戻り値をベースに、定義したルールが正しいかどうかを確認できます。 –

答えて

2

デルタスナップショットをトリガーイベントから取得すると、そのスナップショットの現在の状態がユーザーに関連付けられていると思います。 Firebaseチームはサーバレス環境を提供しているので、安全な場所にあるので管理者も添付します。

したがって、現在のスナップショットからrefを取得するだけで、データベースルールをテストすることができます。明確にするために、私はではなく、snapshot.refについて話しています。ここで

はそのdocumentationからの参照です:

トリガー書き込みが発生したデータベースの場所への参照を返します

。この参照には、書き込みを行ったクライアントと同じエンドユーザー権限があります。したがって、認証されていないクライアントが書き込みを行った場合、この参照は認証されません。書き込みを行ったクライアントが特定のFirebase Authユーザとして認証された場合、この参照は同じユーザとして認証されます。

+0

Thanks JamWils。私は作成した既存のユーザーとしてRealtime Databaseに書きたいと思っています。返された結果(コールバック/約束)から、定義したセキュリティルールが機能しているかどうかを知ることができます。 –

+0

はい、イベントから**デルタスナップショット**を使用し、そのrefを取得するには、ユーザーの許可が必要です。それは私が 'snapshot.ref'を書いたときに私が言及していたものです。イベントが来る場合、あなたは 'event.data.ref'を探していると思います。 – JamWils

関連する問題