Firebase Authenticationトリガーを使う

公開日時

Firebase Authで認証機能を実装する際に、ユーザ登録完了時にサーバ側で処理を行いたい場合がある。

そんな時はCloud Functionsの「Firebase Authentication トリガー」が使える。

先日試したfirestore-stripe-subscriptionsのFirebase Authenticationトリガー実装を参考に、ユーザ登録完了時にStripeユーザを作成するようにした。

import * as functions from 'firebase-functions'
import { createCustomerRecord } from '../util/customer'

const createCustomer = functions
  .region('asia-northeast1')
  .auth.user()
  .onCreate(
    async (user): Promise<void> => {
      const { email, uid } = user

      // Stripe APIでcustomerを作成し、Firestoreに書き込む
      await createCustomerRecord({ email, uid })
    }
  )

export default createCustomer

Related #firebase

YouTubeの「Firebase Release Notes」プレイリスト

最新のアップデートの概要を把握するのにちょうど良い

Firebase Extensions

Functionsを実装する際の参考になる

Cloud FunctionsでFirebase Authenticationの認証情報を取得する

functions.https.onCallを使用している場合はcontextパラメータを受け取ることができる

Nuxt.jsのservice workerで環境変数を切り替えられるようにする

設定情報をハードコードしたくなかったので、ビルド時にnodeコマンドでファイル生成を行い環境変数を切り替えられるように対応した。

CloudFunctionsを使ってFirestoreのサブコレクションを削除する

CloudFunctions内でFirebase CLIのdeleteコマンドを呼び出すことで一括削除ができる