Cloud Functions を使用して Firebase Authentication を拡張する

Firebase ユーザー アカウントの作成と削除に対応して関数をトリガーできます。たとえば、アプリでアカウントを作成したばかりのユーザーに登録完了の通知メールを送信できます。このページの例は、アカウントの作成時と削除時に登録完了と削除完了の通知メールを送信するサンプルに基づいています。

その他のユースケースの例については、Cloud Functions でできることをご覧ください。

ユーザー作成時に関数をトリガーする

functions.auth.user().onCreate() イベント ハンドラを使用して、Firebase ユーザーの作成時にトリガーされる関数を作成できます。

exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
  // ...
});

Firebase アカウントでは、以下の場合に Cloud Functions のユーザー作成イベントがトリガーされます。

  • ユーザーがメール アカウントとパスワードを作成したとき。
  • ユーザーがフェデレーション ID プロバイダを使用して初めてログインしたとき。
  • 開発者が Firebase Admin SDK を使用してアカウントを作成したとき。
  • ユーザーが新しい匿名 Auth セッションに初めてログインしたとき。

ユーザーがカスタム トークンを使用して初めてログインするときには、Cloud Functions イベントはトリガーされません

ユーザー属性にアクセスする

関数に返されたユーザーデータから、新しく作成されたユーザーの UserRecord オブジェクトで使用可能なユーザー属性のリストにアクセスできます。たとえば、次に示すように、ユーザーのメールと表示名を取得できます。

const email = user.email; // The email of the user.
const displayName = user.displayName; // The display name of the user.

ユーザー削除時に関数をトリガーする

ユーザー作成時に関数をトリガーできるのと同様に、ユーザー削除イベントに対応できます。次に示すように、functions.auth.user().onDelete() イベント ハンドラを使用します。

exports.sendByeEmail = functions.auth.user().onDelete((user) => {
  // ...
});

ブロッキング関数をトリガーする

Firebase Authentication with Identity Platform にアップグレードした場合は、ブロッキング Cloud Functions を使用して Firebase Authentication を拡張できます。

ブロッキング関数を使用することで、アプリの登録やログインの結果を変更するカスタムコードを実行できます。たとえば、ユーザーが特定の条件を満たしていない場合にユーザーが認証されないようにすることや、クライアント アプリに戻る前にユーザーの情報を更新することができます。