1. Introdução
Metas
Neste codelab, você vai adicionar funcionalidades a um app de marketplace on-line com a ajuda das Extensões do Firebase. Neste codelab, você vai entender como as extensões podem ajudar a reduzir o tempo gasto no desenvolvimento e gerenciamento de apps.
O que você vai criar
Neste codelab, você vai adicionar os seguintes recursos a um app da Web de mercado on-line:
- Carregue imagens mais rápido para aumentar a retenção de usuários
- Limite as entradas no banco de dados para melhorar a performance e reduzir a fatura
- Implementar a exclusão automática de dados antigos do usuário para aumentar a proteção de dados
O que você aprenderá
- Como descobrir extensões para casos de uso comuns
- Como instalar e configurar uma extensão no seu projeto
- Como manter (monitorar, atualizar e desinstalar) extensões no seu projeto
Este codelab é focado nas extensões do Firebase. Para informações detalhadas sobre outros produtos do Firebase mencionados neste codelab, consulte a documentação do Firebase e outros codelabs.
Pré-requisitos
- Um computador com um navegador da Web moderno instalado (recomendamos o Chrome)
- Uma Conta do Google
2. Criar e configurar um projeto do Firebase
Criar um projeto do Firebase
- Faça login no console do Firebase usando sua Conta do Google.
- Clique no botão para criar um projeto e insira um nome (por exemplo,
FriendlyMarket
).
- Clique em Continuar.
- Se solicitado, leia e aceite os Termos do Firebase e clique em Continuar.
- (Opcional) Ative a assistência de IA no console do Firebase (chamada de "Gemini no Firebase").
- Neste codelab, você não precisa do Google Analytics. Portanto, desative a opção do Google Analytics.
- Clique em Criar projeto, aguarde o provisionamento e clique em Continuar.
O aplicativo que você vai criar usa alguns produtos do Firebase disponíveis para apps da Web:
- Firebase Authentication: usado para identificar seus usuários com facilidade.
- Firebase Realtime Database: usado para salvar dados estruturados na nuvem e receber notificações instantâneas quando os dados são atualizados.
- Cloud Storage para Firebase: usado para salvar imagens na nuvem.
Agora, você vai ativar e configurar esses produtos do Firebase usando o console do Firebase.
Fazer upgrade do plano de preços do Firebase
Para usar as Extensões do Firebase e os serviços de nuvem subjacentes, bem como o Cloud Storage para Firebase, seu projeto do Firebase precisa estar no plano de preços Blaze de pagamento por uso, o que significa que ele está vinculado a uma conta do Cloud Billing.
- Uma conta do Cloud Billing exige uma forma de pagamento, como cartão de crédito.
- Se você ainda não conhece o Firebase e o Google Cloud, confira se tem qualificação para receber um crédito de US$300 e uma conta de teste sem custos financeiros do Cloud Billing.
- Se você estiver fazendo este codelab como parte de um evento, pergunte ao organizador se há créditos do Cloud disponíveis.
Para fazer upgrade do seu projeto para o plano Blaze, siga estas etapas:
- No console do Firebase, selecione Fazer upgrade do seu plano.
- Selecione o plano Blaze. Siga as instruções na tela para vincular uma conta do Cloud Billing ao seu projeto.
Se você precisou criar uma conta do Cloud Billing como parte desse upgrade, talvez seja necessário voltar para o fluxo de upgrade no console do Firebase para concluir o processo.
Ativar o login por e-mail
Embora a autenticação não seja o foco deste codelab, é importante ter uma forma desse processo no seu app para identificar de forma exclusiva todos os usuários. Você vai usar o login por e-mail.
- No console do Firebase, clique em Desenvolver no painel à esquerda.
- Clique em Autenticação e depois na guia Método de login (ou clique aqui para acessar a guia Método de login).
- Clique em E-mail/senha na lista Provedores de login, defina a chave Ativar como "Ativado" e clique em Salvar.
Ativar o Realtime Database
O app usa o Firebase Realtime Database para salvar itens à venda.
- No painel à esquerda do console do Firebase, expanda Build e selecione Realtime Database.
- Clique em Criar banco de dados.
- Selecione um local para o banco de dados e clique em Próxima.
No caso de apps reais, escolha um local próximo aos usuários. - Clique em Iniciar no modo de teste. Leia o aviso sobre as regras de segurança.
Nas próximas etapas deste codelab, você vai adicionar regras de segurança para proteger seus dados. Não distribua ou exponha um aplicativo publicamente sem adicionar regras de segurança ao seu banco de dados. - Clique em Criar.
Definir regras de segurança para seu banco de dados
Agora, você vai definir as regras de segurança necessárias para este app. Estes são alguns exemplos de regras básicas para ajudar a proteger seu app. Essas regras permitem que qualquer pessoa veja os itens à venda, mas apenas usuários conectados podem realizar outras leituras e gravações. Não se preocupe com os detalhes dessas regras. Basta copiar e colar para colocar o app em funcionamento.
- Na parte de cima do painel do Realtime Database, clique na guia Regras.
- Copie e cole o seguinte conjunto de regras no campo "Regras" da guia Regras:
{ "rules": { ".read": false, ".write": false, "drafts": { ".indexOn": "seller", ".read": "auth.uid !== null", ".write": "auth.uid !== null" }, "sellers": { ".read": "auth.uid !== null", ".write": "auth.uid !== null" }, "forsale": { ".read": true, ".write": "auth.uid !== null" } } }
- Clique em Publicar.
Configurar o Cloud Storage para Firebase
O app usa o Cloud Storage para Firebase para salvar imagens de itens à venda.
Veja como configurar o Cloud Storage para Firebase no seu projeto do Firebase:
- No painel à esquerda do console do Firebase, expanda Build e selecione Storage.
- Clique em Começar.
- Selecione um local para seu bucket de armazenamento padrão.
Os buckets emUS-WEST1
,US-CENTRAL1
eUS-EAST1
podem aproveitar o nível"Sempre sem custo financeiro" do Google Cloud Storage. Os buckets em todos os outros locais seguem os preços e usos do Google Cloud Storage. - Clique em Iniciar no modo de teste. Leia o aviso sobre as regras de segurança.
Nas próximas etapas deste codelab, você vai adicionar regras de segurança para proteger seus dados. Não distribua ou exponha um aplicativo publicamente sem adicionar regras de segurança ao bucket do Storage. - Clique em Criar.
Configurar regras de segurança para seu bucket do Storage
Agora, você vai definir as regras de segurança necessárias para esse app. Essas regras permitem que apenas usuários autenticados postem novas imagens, mas qualquer pessoa pode ver a imagem de um item listado.
- Na parte de cima do painel Armazenamento, clique na guia Regras.
- Copie e cole o seguinte conjunto de regras no campo "Regras" da guia Regras:
rules_version = '2'; service firebase.storage { match /b/{bucket}/o { match /friendlymarket/{ImageId} { allow read; allow write: if request.auth != null; } } }
- Clique em Publicar.
3. Executar o app de amostra
Fazer um fork do projeto do StackBlitz
Neste codelab, você vai criar e implantar um app usando o StackBlitz, um editor on-line com vários fluxos de trabalho do Firebase integrados. O StackBlitz não exige instalação de software nem uma conta especial.
O StackBlitz permite compartilhar projetos com outras pessoas. Outras pessoas que têm o URL do seu projeto do StackBlitz podem ver seu código e criar um fork do projeto, mas não podem editá-lo.
- Acesse este URL para conferir o código inicial: https://stackblitz.com/edit/friendlymarket-codelab.
- Na parte de cima da página do StackBlitz, clique em Fork.
Agora você tem uma cópia do código inicial como seu próprio projeto do StackBlitz. Como você não fez login, sua "conta" é chamada de @anonymous
, mas não tem problema. O projeto tem um nome e um URL exclusivos. Todos os seus arquivos e mudanças são salvos nesse projeto do StackBlitz.
Adicionar um app da Web do Firebase ao projeto
- No StackBlitz, confira o arquivo
src/firebase-config.js
. É aqui que você vai adicionar o objeto de configuração do Firebase. - De volta ao Console do Firebase, acesse a página de visão geral do projeto clicando em Visão geral do projeto no canto superior esquerdo.
- No centro da página de visão geral do projeto, clique no ícone da Web
para criar um app da Web do Firebase.
- Registre o app com o apelido FriendlyMarket Codelab.
- Para este codelab, não marque a caixa ao lado de Também configurar o Firebase Hosting para este app. Em vez disso, você vai usar o painel de visualização do StackBlitz.
- Clique em Registrar app.
- Copie o objeto de configuração do Firebase do app para a área de transferência. Não copie as tags
<script>
. Observação: se precisar encontrar a configuração depois, siga as instruções aqui.
- Clique em Continuar para o Console.
Adicione a configuração do projeto ao app:
- De volta ao StackBlitz, acesse o arquivo
src/firebase-config.js
. - Cole o snippet de configuração no arquivo. Depois disso, ela vai ficar assim, mas com os valores do seu projeto no objeto de configuração:
Qual é o ponto de partida desse app?
Confira a prévia interativa no lado direito da tela do StackBlitz:
Este codelab começa com o código de um app de marketplace básico. Qualquer usuário pode conferir uma lista de itens à venda e clicar em um link para acessar a página de detalhes de um item. Se um usuário estiver conectado, ele vai ver as informações de contato do vendedor para negociar um preço e comprar o item.
Teste o app:
- Faça login com o botão na parte de cima da tela inicial. Você pode usar um endereço de e-mail, nome e senha falsos.
- Clique no botão Vender algo no canto inferior direito para criar um anúncio.
- Em Título, insira
Xylophone
. - Em Preço pedido, insira
50
. - Em Descrição do item, insira o seguinte:
This high quality xylophone can be used to play music.
- Baixe esta imagem de um xilofone no seu computador e faça upload dela com o botão FOTO DO SEU ITEM.
- Depois de preencher todos os campos e fazer upload de uma imagem, clique em Postar.
- Encontre sua nova ficha. Clique no item para abrir a tela de detalhes e expanda o painel Informações de contato do vendedor.
- Volte para o console do Firebase. No painel Banco de dados, você vai encontrar uma entrada para o item postado no nó
forsale
. No painel Armazenamento, você também encontra a imagem enviada no caminhofriendlymarket
.
4. Encontrar e instalar uma extensão
O problema
Depois de fazer uma pesquisa de usuários para seu app, você descobre que a maioria deles acessa seu site pelo smartphone, não pelo computador. No entanto, suas estatísticas também mostram que os usuários de dispositivos móveis tendem a sair do site ("churn") depois de apenas alguns segundos.
Curioso, você testa seu site com velocidades de conexão móvel. Saiba como fazer isso aqui. Você percebe que as imagens demoram muito para carregar e não são armazenadas em cache no navegador. Esse longo tempo de carregamento é incorrido em cada visualização de página.
Solução
Depois de ler sobre como otimizar imagens, você decide seguir duas etapas para melhorar o desempenho do carregamento de imagens:
- Compacte as imagens. Até mesmo os smartphones tiram fotos com uma resolução muito maior do que o necessário para as necessidades desse app. Reduzir o tamanho do arquivo vai acelerar os tempos de carregamento sem uma queda perceptível na resolução do app.
- Armazenamento em cache. Por padrão, os objetos do Cloud Storage têm cabeçalhos que informam aos navegadores para não armazenar imagens em cache. Isso significa que o navegador de um usuário vai baixar a mesma imagem várias vezes. Felizmente, é possível mudar esses cabeçalhos para permitir o armazenamento em cache. O SDK do Cloud Storage do lado do cliente e o SDK Admin do Firebase permitem definir esses cabeçalhos.
Para compactar imagens, é necessário limitar a qualidade do upload ou ter um processo do lado do servidor que redimensione as imagens. Vamos considerar as vantagens e desvantagens:
- Lado do cliente. Para um processo do lado do cliente, basta limitar o tamanho do arquivo das imagens enviadas. Isso significa que não é necessário escrever ou manter nenhuma lógica de servidor nova. No entanto, isso também significa que os vendedores precisam descobrir como redimensionar as próprias imagens, o que é uma barreira difícil e não intuitiva para criar uma nova página de detalhes.
- Lado do servidor. Se você usa o Cloud Functions para Firebase, é possível acionar uma função que redimensiona automaticamente uma imagem no upload. Isso significa que os vendedores podem fazer upload de imagens de qualquer tamanho (sem trabalho extra), e sua função de back-end pode redimensionar a imagem sem problemas. Há até uma amostra disponível para essa função.
Parece que o lado do servidor é o caminho a seguir. Mas essa ideia ainda envolve clonar o exemplo, seguir as instruções de configuração e implantar a função com a CLI do Firebase. Redimensionar imagens parece um caso de uso tão comum. Não há uma solução mais fácil?
Uma solução mais fácil
Você está com sorte. Existe uma solução mais fácil: as Extensões do Firebase. Vamos conferir o catálogo de extensões disponíveis no site do Firebase.
Olha só isso! Há uma extensão chamada "Redimensionar imagens". Parece promissor.
Vamos usar essa extensão no seu app.
Instalar uma extensão
- Clique em Ver detalhes para mais informações sobre essa extensão. Em O que você pode configurar, a extensão permite definir as dimensões para as quais você quer redimensionar e até mesmo definir o cabeçalho do cache. Perfeito!
- Clique no botão Instalar no console na página de detalhes da extensão. Você vai acessar uma página do console do Firebase que lista todos os seus projetos.
- Escolha o projeto FriendlyMarket que você criou para este codelab.
- Siga as instruções na tela até chegar à etapa Configurar extensão. As instruções vão mostrar um resumo básico da extensão, além de todos os recursos que ela vai criar e os papéis de acesso necessários.
- No campo cabeçalho para imagens redimensionadas
Cache-Control
, insira o seguinte:
public, max-age=31536000
- Mantenha os outros parâmetros com os valores padrão.
- Clique em Instalar extensão.
Enquanto você aguarda a conclusão da instalação...
Instalar com a interface de linha de comando do Firebase
Se você prefere ferramentas de linha de comando, as extensões também podem ser instaladas e gerenciadas usando a CLI do Firebase. Basta usar o comando firebase ext
, disponível na versão mais recente da CLI. Confira mais informações neste link.
(Opcional) Saiba mais sobre os cabeçalhos Cache-Control
O valor do cabeçalho Cache-Control public, max-age=31536000
significa que a imagem será armazenada em cache por até um ano. Para saber mais sobre o cabeçalho Cache-Control, consulte esta documentação.
Atualizar o código do cliente
A extensão instalada grava uma imagem redimensionada no mesmo bucket da imagem original. A imagem redimensionada tem as dimensões configuradas anexadas ao nome do arquivo. Então, se o caminho do arquivo original for friendlymarket/user1234-car.png
, o caminho do arquivo da imagem redimensionada será friendlymarket/user1234-car_200x200.png
.
Vamos atualizar o app para que ele busque as imagens redimensionadas em vez das imagens em tamanho real.
- No StackBlitz, abra o arquivo
src/firebase-refs.js
. - Substitua a função
getImageRef
atual pelo código a seguir para criar uma ref da imagem redimensionada:
export function getImageRef(storage, imagePath) {
const xDimension = 200;
const yDimension = 200;
// find the '.' in 'file.jpg', 'file.png', etc
const fileExtensionIndex = imagePath.lastIndexOf('.');
const pathNameWithoutExtension = imagePath.substring(0, fileExtensionIndex);
const dimensions = `${xDimension}x${yDimension}`;
const fileExtension = imagePath.substring(fileExtensionIndex);
return {
resized: storage().ref(
`${pathNameWithoutExtension}_${dimensions}${fileExtension}`
),
original: storage().ref(imagePath)
};
}
Testar
Como essa extensão monitora novos uploads de imagens, a imagem atual não será redimensionada.
Crie uma nova postagem para ver a extensão em ação:
- Clique em Friendly Market na barra superior do app para acessar a tela inicial.
- Clique no botão Vender algo no canto inferior direito do app para criar um anúncio.
- Em Título, insira
Coffee
. - Em Preço pedido, insira
1
. - Em Descrição do item, insira o seguinte:
Selling one cafe latte. It has foam art in the shape of a bear
. - Faça o download desta imagem de uma xícara de café para o computador e envie com o botão FOTO DO SEU ITEM.
- Depois de preencher todos os campos e fazer upload de uma imagem, clique em Postar. A listagem de café vai aparecer abaixo do xilofone.
- No painel Functions do console do Firebase, clique na guia Registros. Você vai ver registros da função mostrando que ela foi executada.
- Acesse o painel Storage para ver a imagem original do café e uma versão redimensionada no caminho
friendlymarket
. - No painel de visualização do StackBlitz, recarregue a tela inicial do app algumas vezes. Você vai notar que a imagem do café carrega muito mais rápido do que a do xilofone.
A imagem carrega mais rápido no primeiro carregamento da página porque é menor. Em atualizações subsequentes, ela é carregada do cache do navegador em vez de acionar uma solicitação de rede.
5. Reconfigurar uma extensão
O problema
O app salva automaticamente versões de rascunho das informações de um vendedor. Seus usuários gostam desse recurso, mas suas estatísticas são um pouco preocupantes. Seus relatórios mostram que apenas 10% dos rascunhos são publicados, e os outros 90% estão apenas ocupando espaço no seu banco de dados.
Solução
Depois de alguns cálculos rápidos, você percebe que só precisa salvar cerca de cinco rascunhos por vez.
Lembra do catálogo de Extensões do Firebase? Talvez já exista uma solução criada para essa situação. Vamos instalar a extensão Limitar nós filhos para manter automaticamente o número de rascunhos salvos em cinco ou menos. A extensão exclui o rascunho mais antigo sempre que um novo é adicionado.
- Clique no botão Instalar na página de detalhes da extensão.
- Escolha o projeto do Firebase que você está usando para o app da Web do marketplace.
- Siga as instruções na tela até chegar à etapa Configurar extensão.
- Em Caminho do Realtime Database, insira
drafts
. Esse é o caminho no banco de dados em que os rascunhos são salvos. - Em Contagem máxima de nós armazenados, insira
5
. Isso significa que cinco rascunhos serão salvos para cada item. Se outro for adicionado, o mais antigo será excluído automaticamente. - Clique em Instalar extensão.
Enquanto você aguarda a conclusão da instalação…
Extensões de monitoramento
Quando você instala uma extensão, o processo cria várias funções. Talvez você queira verificar a frequência com que essas funções são executadas ou ver registros e taxas de erros. Para informações detalhadas sobre como monitorar sua extensão, consulte Gerenciar extensões instaladas. Siga as instruções na documentação para conferir as funções criadas pela extensão "Redimensionar imagens" na etapa anterior.
Desinstalar extensões
Para remover uma extensão do projeto, você pode ser tentado a excluir as funções individuais que ela cria, mas isso pode levar a um comportamento inesperado, já que uma extensão pode criar várias funções. Saiba como desinstalar uma extensão na documentação.
A desinstalação exclui todos os recursos (como funções da extensão) e a conta de serviço criada para essa instância da extensão. No entanto, os artefatos criados pela extensão (como as imagens redimensionadas) vão permanecer no seu projeto após a desinstalação.
Instalar várias cópias de uma extensão em um único projeto
Não há limite para a instalação de uma única instância de uma determinada extensão em um projeto. Se você quiser limitar entradas em outro caminho, instale outra instância dessa extensão. No entanto, para este codelab, você vai instalar a extensão apenas uma vez.
Veja isso na prática
- Verifique se você fez login com a conta usada para postar o xilofone ou o café com leite.
- Gere alguns rascunhos:
- Clique no botão Vender algo no canto inferior direito do app.
- Edite o Título para "Rascunho 1".
- Role a tela para baixo até a seção Rascunhos e confira o número de rascunhos. É necessário ter pelo menos dois.
- Clique no botão MERCADO AMIGÁVEL na barra de apps superior. Assim, você terá um rascunho salvo, mas não precisará postar.
- Repita o processo para "Rascunho 2", "Rascunho 3" e assim por diante até "Rascunho 6".
- Ao criar o "Rascunho 6", observe que o "Rascunho 1" desaparece da seção Rascunhos.
- Assim como fez com a extensão "Redimensionar imagens", você pode verificar os registros de funções para saber quais foram acionadas.
O limite de rascunhos a serem mantidos é muito pequeno
Sua equipe de suporte ao cliente entra em contato e informa que alguns dos seus vendedores mais prolíficos estão reclamando que os rascunhos estão sendo excluídos antes de serem postados. Você confere os cálculos com seu colega e percebe que eles estavam errados por um fator de 10.000!
Como você pode corrigir isso? Vamos reconfigurar a extensão instalada.
- No painel esquerdo do console do Firebase, clique em Extensões.
- No card da extensão instalada, clique em Gerenciar.
- No canto superior direito, clique em Reconfigurar extensão.
- Mude a Contagem máxima de nós armazenados para
50000
. - Clique em Salvar.
E isso é tudo o que você precisa fazer! Enquanto a extensão é atualizada, converse com sua equipe de suporte e informe que uma correção já está sendo implantada.
6. Excluir dados do usuário automaticamente
O problema
Nossa equipe de suporte ao cliente entrou em contato com você novamente. Os vendedores que excluíram as contas ainda estão recebendo e-mails de outros usuários e estão com raiva! Esses vendedores esperavam que os endereços de e-mail deles fossem excluídos dos seus sistemas quando eles excluíram as contas.
Por enquanto, o suporte exclui manualmente os dados de cada usuário, mas precisa haver uma maneira melhor! Você pensa nisso e considera escrever seu próprio job em lote que é executado periodicamente e limpa os endereços de e-mail das contas excluídas. Mas excluir dados do usuário parece ser um problema bem comum. Talvez as extensões do Firebase também possam ajudar a resolver esse problema.
Solução
Você vai configurar a extensão Excluir dados do usuário para excluir automaticamente o nó users/uid
no banco de dados quando um usuário excluir a conta.
- Clique no botão Instalar na página de detalhes da extensão.
- Escolha o projeto do Firebase que você está usando para o app da Web do marketplace.
- Siga as instruções na tela até chegar à etapa Configurar extensão.
- Em Caminhos do Realtime Database, insira
sellers/{UID}
. A partesellers
é o nó cujos filhos contêm endereços de e-mail de usuários, e{UID}
é um caractere curinga. Com essa configuração, a extensão saberá que, quando o usuário com o UID 1234 excluir a conta, ela também precisará excluirsellers/1234
do banco de dados. - Clique em Instalar extensão.
Enquanto você aguarda a conclusão da instalação…
Vamos falar sobre personalização
Neste codelab, você viu que as Extensões do Firebase podem ajudar a resolver casos de uso comuns e que elas são configuráveis para atender às necessidades do seu app.
No entanto, as extensões não podem resolver todos os problemas, e a exclusão de dados do usuário é um bom exemplo disso. Embora a extensão "Excluir dados do usuário" resolva a reclamação atual de que os e-mails ainda ficam expostos depois que um usuário exclui a conta, ela não exclui tudo. Por exemplo, as informações do item ainda estão disponíveis, e as imagens no Cloud Storage também permanecem. A extensão "Excluir dados do usuário" permite configurar um caminho do Cloud Storage para exclusão, mas como os usuários podem fazer upload de muitos arquivos diferentes com vários nomes, não é possível configurar essa extensão para excluir automaticamente esses artefatos. Para situações como essa, o Cloud Functions para Firebase pode ser mais adequado para que você escreva um código específico para o modelo de dados do seu app.
Extensões e faturamento
As extensões do Firebase não são cobradas (você paga apenas pelos recursos subjacentes que usa), mas alguns dos recursos subjacentes necessários para uma extensão podem exigir faturamento. Este codelab foi projetado para ser concluído sem uma conta de faturamento. No entanto, configurar um plano Flame ou Blaze desbloqueia muitas extensões do Firebase muito interessantes.
Por exemplo, é possível encurtar URLs, acionar e-mails, exportar coleções para o BigQuery e muito mais. Confira o catálogo completo de extensões aqui.
Se você quiser uma extensão que não está disponível no momento, conte para nós! Envie uma solicitação de recurso ao suporte do Firebase para sugerir uma nova extensão.
Veja isso na prática
Depois que a instalação da extensão for concluída, exclua um usuário e veja o que acontece:
- No Console do Firebase, acesse o painel do Realtime Database.
- Expanda o nó
sellers
. - As informações de cada vendedor são identificadas pelo UID do usuário. Escolha um UID de usuário.
- No console do Firebase, acesse o painel Autenticação e encontre o UID do usuário.
- Abra o menu à direita do UID e selecione Excluir conta.
- Volte para o painel do Realtime Database. As informações do vendedor vão desaparecer.
7. Parabéns!
Embora você não tenha escrito muito código neste codelab, adicionou recursos importantes ao app de marketplace.
Você aprendeu a descobrir, configurar, instalar e reconfigurar extensões. Além disso, você aprendeu a monitorar e desinstalar extensões, se necessário.
Qual é a próxima etapa?
Confira algumas destas outras extensões:
- Traduzir strings de texto no Cloud Firestore (requer uma conta de faturamento)
- Adicionar novos usuários às listas de e-mail do Mailchimp (é necessário ter uma conta de faturamento)
- Encurtar URLs (requer uma conta de faturamento)
Precisa de mais código personalizado do lado do servidor?
Outros documentos úteis
Gerenciar extensões:
- Gerenciar extensões com a CLI do Firebase
- Definir alertas de orçamento
- Verificar com que frequência uma extensão instalada está em execução
- Atualizar uma extensão instalada para uma nova versão
- Desinstalar uma extensão
Aprenda os detalhes das extensões:
- Confira o código-fonte e a documentação de cada extensão no GitHub.
- Saiba mais sobre as permissões e o acesso concedidos a uma extensão