Firebase Authentication Triggers
Cloud Run functions can be triggered by events from Firebase Authentication in the same Google Cloud project as the function. These events include user creation and user deletion. For example, you could send a welcome email to a user who has just created an account in your app.
Event types
Firebase Authentication can trigger functions in response to user create
and
delete
events.
Event Type | Trigger |
---|---|
providers/firebase.auth/eventTypes/user.create |
Triggered when a user account is created. |
providers/firebase.auth/eventTypes/user.delete |
Triggered when a user account is deleted. |
User creation
Firebase accounts trigger user creation events for Cloud Run functions when:
A user creates an email account and password.
A user signs in for the first time using a federated identity provider.
The developer creates an account using the Firebase Admin SDK.
A user signs in to a new anonymous auth session for the first time.
User deletion
You can also configure a function to trigger upon user deletion.
Event structure
Event data is provided as a UserRecord
object.
An example password-based account creation event is shown below:
{ "email": "me@example.com", "metadata": { "createdAt": "2018-10-19T19:29:16Z" }, "uid": "XXXXX" }
Some properties of this object are only defined when using certain
authentication methods. For example, password-based account
events define an email
property containing the user's email address. The uid
property (which contains a user ID unique to your project) is always defined.
Sample code
Node.js
Python
Go
Java
C#
Ruby
PHP
Deploying your function
To deploy your function, you need to specify the event type and the project for which you have Firebase Auth configured. In the Google Cloud console, there is a single field for Event Type as the project is assumed to be the same as the project that contains your function.
On the command line, however, you must use specific strings to specify these two
parameters. The following gcloud
command deploys a function that is triggered
by user create
events:
gcloud functions deploy FUNCTION_NAME \ --no-gen2 \ --entry-point ENTRY_POINT \ --trigger-event providers/firebase.auth/eventTypes/user.create \ --trigger-resource YOUR_PROJECT_ID \ --runtime RUNTIME
Argument | Description |
---|---|
FUNCTION_NAME |
The registered name of the Cloud Run functions you are deploying.
This can either be the name of a function in your
source code, or an arbitrary string. If FUNCTION_NAME is an
arbitrary string, then you must include the
--entry-point flag.
|
--entry-point ENTRY_POINT |
The name of a function or class in your source code. Optional, unless
you did not use FUNCTION_NAME
to specify the
function in your source code to be executed during deployment. In that
case, you must use --entry-point to supply the name of the
executable function.
|
--trigger-event NAME |
The name of the event type that triggers the function. In this case, it should be one of create or delete, as listed above. |
--trigger-resource NAME |
The project ID (in this example, YOUR_PROJECT_ID )
for the project that contains your function and Firebase Authentication.
|
--runtime RUNTIME |
The name of the runtime you are using. For a complete list, see the
gcloud reference.
|