Gatilhos do Firebase Authentication
O Cloud Run functions pode ser acionado por eventos do Firebase Authentication no mesmo projeto do Google Cloud que a função. Entre esses eventos estão a criação e a exclusão de usuários. Por exemplo, é possível enviar um e-mail de boas-vindas para um usuário que acabou de criar uma conta no app.
Tipos de evento
O Firebase Authentication pode acionar funções em resposta a eventos create
e delete
do usuário.
Tipo de evento | Gatilho |
---|---|
providers/firebase.auth/eventTypes/user.create |
Acionado quando uma conta de usuário é criada. |
providers/firebase.auth/eventTypes/user.delete |
Acionado quando uma conta de usuário é excluída. |
Criação de usuário
As contas do Firebase acionam eventos de criação de usuários do Cloud Run functions quando:
um usuário criar uma conta de e-mail e uma senha;
um usuário fizer login pela primeira vez com um provedor de identidade federado;
o desenvolvedor criar uma conta com o SDK Admin do Firebase;
um usuário fizer login em uma sessão de autenticação anônima pela primeira vez.
Exclusão de usuário
Também é possível configurar uma função para acionamento mediante exclusão do usuário.
Estrutura do evento
Os dados do evento são fornecidos como um objeto UserRecord
.
Um exemplo de evento de criação de conta baseada em senha é mostrado abaixo:
{ "email": "me@example.com", "metadata": { "createdAt": "2018-10-19T19:29:16Z" }, "uid": "XXXXX" }
Algumas propriedades desse objeto são definidas somente ao usar determinados métodos de autenticação. Por exemplo, os eventos de conta baseada em senha definem uma propriedade email
que contém o endereço de e-mail do usuário. A propriedade uid
(que contém um ID do usuário exclusivo para seu projeto) é sempre definida.
Exemplo de código
Node.js
Python
Go
Java
C#
Ruby
PHP
Como implantar a função
Para implantar a função, você precisa especificar o tipo de evento e o projeto em que o Firebase Auth está configurado. No console do Google Cloud, há um único campo para Tipo de evento, já que o projeto é considerado igual ao projeto que contém a função.
Porém, na linha de comando, você precisa usar strings específicas para determinar esses dois parâmetros. O comando gcloud
a seguir implanta uma função que é acionada pelos eventos create
do usuário:
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
Argumento | Descrição |
---|---|
FUNCTION_NAME |
O nome registrado do Cloud Run functions que você está implantando.
Pode ser o nome de uma função no código-fonte ou uma string arbitrária. Se FUNCTION_NAME for uma string arbitrária, você precisará incluir a sinalização --entry-point .
|
--entry-point ENTRY_POINT |
O nome de uma função ou classe no código-fonte. Opcional, a menos que
você não tenha usado FUNCTION_NAME
para especificar a
função no código-fonte a ser executada durante a implantação. Nesse caso, use --entry-point para fornecer o nome da função executável.
|
--trigger-event NAME |
O nome do tipo de evento que aciona a função. Neste caso, ele precisa ser um dos de criação ou exclusão, conforme listado acima. |
--trigger-resource NAME |
O ID (neste exemplo, YOUR_PROJECT_ID ) do projeto que contém sua função e o Firebase Authentication. |
--runtime RUNTIME |
O nome do ambiente de execução que você está usando. Para uma lista completa, consulte a referência do gcloud .
|