Cloud Functions は、その関数と同じ Cloud プロジェクトの Firebase Authentication のイベントによってトリガーできます。これには、ユーザーの作成やユーザーの削除などのイベントが含まれます。たとえば、アプリでアカウントを作成したばかりのユーザーに登録完了の通知メールを送信できます。
イベントタイプ
Firebase Authentication は、create
と delete
イベントに応じて関数をトリガーできます。
イベントタイプ | トリガー |
---|---|
providers/firebase.auth/eventTypes/user.create |
ユーザー アカウントが作成されるとトリガーされます。 |
providers/firebase.auth/eventTypes/user.delete |
ユーザー アカウントが削除されるとトリガーされます。 |
ユーザーの作成
Firebase アカウントでは、以下の場合に Cloud Functions のユーザー作成イベントがトリガーされます。
ユーザーがメール アカウントとパスワードを作成します。
ユーザーがフェデレーション ID プロバイダを使用して初めてログインします。
デベロッパーが Firebase Admin SDK を使用してアカウントを作成します。
ユーザーが新しい匿名 Auth セッションに初めてログインします。
ユーザーの削除
ユーザーの削除時にトリガーするように関数を構成することもできます。
イベントの構造
イベントデータは、UserRecord
オブジェクトとして指定されます。
以下に、パスワード ベースのアカウントの作成イベントの例を示します。
{ "email": "me@example.com", "metadata": { "createdAt": "2018-10-19T19:29:16Z" }, "uid": "XXXXX" }
このオブジェクトの一部のプロパティは、特定の認証方法を使用する場合にのみ定義されます。たとえば、パスワード ベースのアカウント イベントは、ユーザーのメールアドレスを含む email
プロパティを定義します。プロジェクトに固有のユーザー ID を含む uid
プロパティは常に定義されます。
サンプルコード
Node.js
Python
Go
Java
C#
Ruby
関数のデプロイ
関数をデプロイするには、Firebase Authentication が構成されているイベントタイプとプロジェクトを指定する必要があります。Cloud Console にはイベントタイプのフィールドが 1 つ表示されます。これは、プロジェクトが関数を含むプロジェクトと同じであると想定されるためです。
コマンドラインの場合は、この 2 つのパラメータを指定するために特定の文字列を使用する必要があります。次の gcloud
コマンドは、ユーザーの create
イベントによってトリガーされる関数をデプロイします。
gcloud functions deploy YOUR_FUNCTION_NAME \ --trigger-event providers/firebase.auth/eventTypes/user.create \ --trigger-resource YOUR_PROJECT_ID \ --runtime RUNTIME
引数 | 説明 |
---|---|
--trigger-event NAME |
関数をトリガーするイベントタイプの名前。この場合、上記のように create または delete のいずれかにする必要があります。 |
--trigger-resource NAME |
関数と Firebase Authentication を含むプロジェクトのプロジェクト ID(この例では YOUR_PROJECT_ID )。 |
--runtime RUNTIME |
使用しているランタイムの名前。網羅的なリストについては、gcloud リファレンスをご覧ください。 |