O que posso fazer com o Cloud Functions?

O Cloud Functions oferece aos desenvolvedores acesso aos eventos do Firebase e do Google Cloud, além de poder de computação escalonável para executar códigos em resposta a esses eventos. É esperado que os apps do Firebase usem o Cloud Functions de maneiras únicas para atender a requisitos exclusivos, mas existem casos de uso típicos, os quais podem ser encontrados nos tópicos a seguir:

Analise os casos de uso e os exemplos de cada categoria do seu interesse e complete nosso tutorial de iniciação. Também é possível ler os guias de instruções específicas sobre eventos de autenticação, eventos de análise e muito mais.

Notificar usuários quando algo interessante acontecer

Os desenvolvedores podem usar o Cloud Functions para manter os usuários envolvidos e atualizados com informações relevantes sobre um app. Considere, por exemplo, um app que permite que os usuários sigam as atividades uns dos outros nele. Sempre que um usuário se adiciona como seguidor de outro, ocorre uma gravação no Realtime Database. Em seguida, esse evento de gravação pode acionar uma função para criar notificações do Firebase Cloud Messaging (FCM) para informar aos usuários apropriados que eles ganharam novos seguidores.

Diagrama mostrando o fluxo do app descrito abaixo

  1. A função é acionada quando ocorrem gravações no caminho do Realtime Database em que os seguidores são armazenados.
  2. A função cria uma mensagem a ser enviada por meio do FCM.
  3. O FCM envia a mensagem de notificação ao dispositivo do usuário.

Para analisar o código ativo, consulte o exemplo de código no GitHub:

Outros casos de uso interessantes das notificações

  • Enviar e-mails de confirmação aos usuários que se inscreverem em uma newsletter.
  • Enviar um e-mail de boas-vindas quando um usuário realizar a inscrição.
  • Enviar uma confirmação via SMS quando um usuário criar uma nova conta.

Executar a sanitização e a manutenção de banco de dados

Com o processamento de eventos do banco de dados do Cloud Functions, é possível modificar o Realtime Database ou o Cloud Firestore em resposta ao comportamento do usuário, o que ajuda a manter o sistema no estado desejado. Por exemplo, é possível monitorar eventos de gravação e mudar o formato (por exemplo, para letras maiúsculas) de determinadas strings nas mensagens dos usuários. Veja como isso poderia funcionar:

Diagrama mostrando o fluxo do app descrito abaixo

  1. O manipulador de eventos do banco de dados da função detecta eventos de gravação em um caminho específico e recupera dados de evento que contêm o texto de uma mensagem.
  2. A função processa o texto para mudar as strings para maiúsculas.
  3. A função grava o texto atualizado de volta no banco de dados.

Para analisar o código ativo, consulte o exemplo de código no GitHub:

Outros casos de uso de sanitização e manutenção de banco de dados

  • Limpar o conteúdo de um usuário excluído do Realtime Database.
  • Limitar o número de nós secundários em um banco de dados do Firebase.
  • Rastrear o número de elementos em uma lista do Realtime Database.
  • Copiar os dados do Realtime Database para o Google Cloud BigQuery.
  • Converter texto em emojis.
  • Gerenciar metadados computados para registros de banco de dados.

Executar tarefas intensivas na nuvem em vez de no seu app

É possível usar o Cloud Functions para descarregar na nuvem do Google trabalhos que usam muitos recursos (utilização intensiva da CPU ou da rede) em vez de executá-los no dispositivo de um usuário, o que melhora a capacidade de resposta do app. Por exemplo, você pode criar uma função para detectar uploads de imagem no Cloud Storage, fazer o download da imagem na instância que executa a função, modificá-la e fazer o upload de volta para o Cloud Storage. Suas modificações podem incluir redimensionamentos, cortes ou conversões de imagens com ferramentas como o sharp ou o Pillow.

Diagrama mostrando o fluxo do app descrito abaixo

  1. Uma função é acionada quando um arquivo de imagem é enviado ao Cloud Storage.
  2. A função faz o download da imagem e cria uma versão em miniatura.
  3. A função grava a localização da miniatura no banco de dados para que o app cliente possa encontrá-la e usá-la.
  4. A função envia a miniatura de volta para o Cloud Storage em um novo local.
  5. O app faz o download do link da miniatura.

Para conferir um tutorial com um exemplo de processamento de imagens, consulte o guia sobre como processar eventos do Cloud Storage.

Outros exemplos de jobs em lote na nuvem do Firebase

  • Excluir periodicamente as contas do Firebase não utilizadas Node.js | Python.
  • Fazer backup automático das imagens enviadas Node.js | Python.
  • Enviar e-mails em massa para usuários.
  • Agregar e resumir os dados periodicamente.
  • Processar uma fila de tarefas pendentes.

Integrar com serviços e APIs de terceiros

O Cloud Functions pode ajudar o app a funcionar melhor com outros serviços, chamando e expondo APIs da Web. Por exemplo, um app usado para colaboração no desenvolvimento pode publicar as confirmações do GitHub em uma sala de chat grupo de trabalho.

Diagrama mostrando o fluxo do app descrito abaixo

  1. Um usuário envia as confirmações para um repositório do GitHub.
  2. Uma função HTTPS é acionada por meio da API GitHub webhook.
  3. A função envia uma notificação de confirmação para um canal do Slack da equipe.

Outras maneiras de integrar com serviços e APIs de terceiros

  • Usar a API Cloud Vision do Google para analisar e marcar imagens enviadas.
  • Traduzir mensagens com o Google Tradutor.
  • Usar a autenticação personalizada para fazer login dos usuários.
  • Enviar uma solicitação para um webhook com base em gravações do Realtime Database.
  • Ativar a pesquisa de texto completo em elementos do Realtime Database.
  • Processar pagamentos dos usuários.
  • Criar respostas automáticas para chamadas telefônicas e mensagens SMS.
  • Criar um chatbot com o Google Assistente.