Firebase 身份验证触发器
Cloud Functions 函数可以由与该函数属于同一 Google Cloud 项目的 Firebase Authentication 中的事件触发。这些事件包括创建用户和删除用户。例如,如果用户刚在您的应用中创建了账号,您可以向其发送欢迎电子邮件。
事件类型
Firebase Authentication 可以触发函数以响应用户 create
和 delete
事件。
事件类型 | 触发器 |
---|---|
providers/firebase.auth/eventTypes/user.create |
在创建了用户账号时触发。 |
providers/firebase.auth/eventTypes/user.delete |
在删除了用户账号时触发。 |
创建用户
在以下情况下,Firebase 账号将为 Cloud Functions 触发用户创建事件:
用户创建了电子邮件账号和密码。
用户首次通过联合身份提供方登录。
开发者使用 Firebase Admin SDK 创建了一个账号。
用户首次登录新的匿名身份验证会话。
删除用户
您还可以将函数配置为在删除用户时触发。
事件结构
事件数据是作为 UserRecord
对象提供的。
下面显示了一个基于密码的账号创建事件示例:
{ "email": "me@example.com", "metadata": { "createdAt": "2018-10-19T19:29:16Z" }, "uid": "XXXXX" }
此对象的一些属性仅在使用特定身份验证方法时才会定义。例如,基于密码的账号事件定义了一个 email
属性,其中包含用户电子邮件地址。uid
属性(包含项目的唯一用户 ID)在任何情况下都会定义。
示例代码
Node.js
Python
Go
Java
C#
Ruby
PHP
部署函数
要部署函数,您需要指定事件类型以及配置了 Firebase 身份验证的项目。在 Google Cloud 控制台中,事件类型字段只有一个,因为假定项目与您函数所属的项目相同。
但在命令行上,您必须使用特定字符串来指定这两个参数。以下 gcloud
命令将部署一个由用户 create
事件触发的函数:
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
参数 | 说明 |
---|---|
FUNCTION_NAME |
您要部署的 Cloud Run 函数的注册名称。
这可以是源代码中函数的名称,也可以是任意字符串。如果 FUNCTION_NAME 是任意字符串,则必须添加 --entry-point 标志。 |
--entry-point ENTRY_POINT |
源代码中函数或类的名称。可选,除非您未使用 FUNCTION_NAME 指定源代码中要在部署期间执行的函数。在这种情况下,您必须使用 --entry-point 提供可执行函数的名称。 |
--trigger-event NAME |
触发函数的事件类型的名称。 在本例中,应为 create 或 delete 之一(如上所列)。 |
--trigger-resource NAME |
您的函数和 Firebase Authentication 所属的项目的 ID(在本例中为 YOUR_PROJECT_ID )。
|
--runtime RUNTIME |
您使用的运行时的名称。如需完整列表,请参阅 gcloud 参考文档。 |