Informações gerais do editor de extensão

Uma extensão do Firebase executa uma tarefa específica ou um conjunto de tarefas em resposta a solicitações HTTP ou acionamento de eventos de outros produtos do Firebase e do Google, como Firebase Cloud Messaging, Cloud Firestore ou Pub/Sub.

É possível criar sua própria extensão para uso pessoal ou para compartilhar com outras pessoas no Hub de Extensões do Firebase. Por exemplo, sua extensão pode realizar uma tarefa específica que seu app precisa regularmente ou pode facilitar o acesso a uma das APIs da sua empresa. Depois de criar sua extensão, você poderá compartilhá-la com outras pessoas. Esses usuários podem instalar e configurar a extensão para uso nos próprios projetos do Firebase.

Estrutura de uma extensão

Você pode pensar em uma extensão como tendo três componentes principais:

  • Código do Cloud Functions, em JavaScript ou TypeScript
  • Metadados que descrevem sua extensão
  • Documentação para ajudar seus usuários a configurar e usar a extensão

Para desenvolver uma extensão, monte esses componentes na seguinte estrutura:

example-extension
├── functions
│   ├── integration-tests
│   │   ├── extensions
│   │   │   └── example-extension.env
│   │   ├── firebase.json
│   │   └── integration-test.spec.js
│   ├── index.js
│   └── package.json
├── README.md
├── PREINSTALL.md
├── POSTINSTALL.md
├── CHANGELOG.md
├── icon.png
└── extension.yaml
  • O diretório functions contém o código do Cloud Functions em JavaScript ou TypeScript. Esse é o código que executa as tarefas da extensão em resposta a eventos acionados pelo Firebase e pelos serviços do Google.
  • O arquivo extension.yaml contém metadados sobre sua extensão, como gatilhos e papéis de acesso do IAM, bem como todos os parâmetros que você quer que sejam configuráveis pelo usuário.
  • Os arquivos PREINSTALL, POSTINSTALL e CHANGELOG são a documentação mínima que sua extensão precisa ter. Esses arquivos ajudam os usuários a saber o que a extensão faz, como usá-la e quais atualizações você fez. Você também deve fornecer um ícone para ajudar os usuários a reconhecer sua extensão. O console do Firebase, a CLI do Firebase e o Hub de extensões exibem o conteúdo desses arquivos quando os usuários usam, instalam e gerenciam sua extensão.

Depois de criar a extensão, você pode usar a CLI do Firebase para instalá-la em um projeto ou publicá-la no Hub de extensões, onde qualquer pessoa pode descobri-la e instalá-la nos projetos.

Com quais produtos minha extensão pode interagir?

Como uma extensão do Firebase funciona usando o Cloud Functions, você pode pensar na questão de possíveis integrações de duas maneiras: Quais produtos podem acionar as funções da minha extensão? e Depois de acionadas, com que produtos as funções da extensão podem interagir?

Acionadores de função compatíveis

Gatilhos manuais

Primeiro, você pode acionar uma função manualmente. As Extensões do Firebase e o Cloud Functions são compatíveis com duas maneiras de acionar funções manualmente:

  • Acionadores HTTP: implante uma função em um endpoint HTTP
  • Funções chamáveis: chame o Cloud Functions diretamente do código do cliente iOS, Android ou da Web usando os SDKs do cliente do Firebase.

Ao expor endpoints HTTP da extensão, ela pode se integrar com qualquer serviço da Web compatível com webhooks. Com funções chamáveis, os usuários que instalarem sua extensão poderão usar os SDKs do Firebase como uma biblioteca de cliente para acessar a API que sua extensão implementa.

Gatilhos de serviço do Firebase

A maioria dos produtos do Firebase emite eventos que podem acionar o Cloud Functions de uma extensão.

  • Analytics: aciona funções quando ele registra um evento.
  • App Distribution: aciona funções quando ele aciona um alerta.
  • Autenticação: aciona funções quando os usuários criam e excluem contas
  • Cloud Firestore: acionar funções quando as páginas são criadas, atualizadas ou excluídas.
  • Cloud Storage: acionar funções quando os objetos são enviados, arquivados ou excluídos de buckets
  • Crashlytics: aciona funções quando ele aciona um alerta.
  • Monitoramento de desempenho: aciona funções quando o Monitoramento de desempenho aciona um alerta.
  • Realtime Database: aciona funções quando os dados são criados, atualizados ou excluídos
  • Configuração remota: aciona funções quando um parâmetro é atualizado.
  • Test Lab: aciona funções quando o Test Lab aciona um alerta.

Gatilhos de serviço do Google Cloud

Uma extensão também pode incluir funções que acionam vários serviços do Google Cloud que não são do Firebase:

  • Cloud Pub/Sub: uma extensão pode incluir funções que são acionadas quando os eventos são postados em um tópico do Pub/Sub configurável.
  • Cloud Scheduler: uma extensão pode incluir funções que são executadas em uma programação definida.
  • Cloud Tasks: uma extensão pode incluir funções que podem ser enfileiradas usando o Cloud Tasks. As Extensões do Firebase usam esse recurso para permitir que você, como autor da extensão, escreva funções que respondam aos eventos de "ciclo de vida" de uma extensão: sendo instalada em um projeto pela primeira vez, sendo atualizada para um novo e sendo reconfigurada.
  • Eventarc: uma extensão pode incluir funções que são acionadas quando os eventos são publicados em um canal configurável do Eventarc. Por outro lado, uma extensão pode publicar os próprios eventos em um canal do Eventarc para permitir que os usuários definam as próprias funções acionadas por eventos de uma extensão.

Compatível com funções

Depois que a Função do Cloud de uma extensão é acionada, o intervalo de integrações possíveis geralmente é aberto. Confira alguns destaques do que é possível fazer em uma Função do Cloud:

  • Leia, grave e interaja com qualquer serviço do Firebase ou do Google Cloud que use um papel de IAM compatível.
  • Trabalhe com qualquer serviço de terceiros que ofereça uma API da Web.
  • Se você fornecer uma API da Web, trabalhe com seus serviços personalizados.
  • Execute a maioria das bibliotecas JavaScript, incluindo TensorFlow.js, Express.js e assim por diante.

Como criar uma extensão

O tutorial Primeiras etapas orienta você no processo de criação, teste e publicação de uma extensão completa, e é a maneira recomendada para aprender a criar uma.

Vamos começar

Depois de ler o guia de instalação uma vez, consulte os guias de tópicos individuais, que explicam cada uma das tarefas envolvidas na criação da sua própria extensão: