Como criar uma API com sucesso com o Firebase?

Publicados: 2021-09-07

Firebase é uma plataforma de desenvolvimento de aplicativos lançada em 2012 e adquirida pelo Google dois anos depois. No início, o Firebase era pensado apenas como um banco de dados para aplicativos em tempo real, mas o Google viu seu potencial e decidiu adicionar serviços adicionais a ele.

Atualmente, o Firebase é um sistema BaaS (backend as a service) com 18 serviços para facilitar a criação de aplicativos web e móveis. Entre as empresas que usam os serviços BaaS da Firebase estão Accenture, Alibaba Travels, Stack, Twitch e Instacart, junto com mais de 2.300 outras.

Benefícios de usar o Firebase

O primeiro dos serviços que o Firebase ofereceu foi seu banco de dados em tempo real, e continua sendo um de seus maiores atrativos. Os bancos de dados em tempo real do Firebase são hospedados na nuvem, armazenando dados no formato JSON e sincronizando em tempo real com todos os clientes conectados a eles. Seja usando iOS SDK, Android SDK ou JavaScript SDK, todos os aplicativos conectados a um banco de dados Firebase Realtime compartilham uma instância do banco de dados, sempre atualizados com os dados mais recentes.

O Cloud Firestore é outro serviço interessante do Firebase. É um banco de dados de documentos NoSQL projetado para facilitar o armazenamento de dados, sincronização e consulta para aplicativos móveis e da web em uma escala global. A criação de hierarquias para armazenar dados relacionados e consultas expressivas para recuperar dados permitem que todo o potencial do Cloud Firestore seja realizado. Por sua vez, as consultas são escalonadas com base no tamanho dos resultados, e não no tamanho do conjunto de dados. Isso permite que os aplicativos sejam dimensionados desde o início, sem esperar até o momento em que as necessidades excedam a capacidade.

Além dos serviços de banco de dados mencionados, o Firebase também oferece serviços de hospedagem, armazenamento de arquivos, funções (estilo AWS Lambda), entre muitos outros.

Criação de uma API

APIs são uma forma de fornecer serviços para seus próprios aplicativos ou aplicativos de terceiros usarem. O Firebase permite que você forneça serviços personalizados que, por sua vez, usam os próprios serviços do Firebase sem o incômodo de configurar um back-end para esses serviços. Você poderia, por exemplo, oferecer acesso a um banco de dados em tempo real do Firebase para aplicativos de terceiros para consultar informações coletadas por sensores industriais.

A primeira etapa na criação de uma API no Firebase é acessar o console do Firebase e adicionar um projeto clicando em “Adicionar projeto” e dando um nome ao novo projeto. O Google dará a você a opção de ativar o Google Analytics para seu novo projeto. É recomendável aceitar essa recomendação, pois você obterá benefícios como testes A / B e uma ampla variedade de relatórios estatísticos de sua API.

Depois de criar seu projeto, você poderá selecionar os serviços do Firebase que sua API usará. Para ilustrar essa tarefa, veremos como usar o serviço de banco de dados Firebase Realtime.

Configurando um banco de dados em tempo real no Firebase

Na barra de navegação à esquerda, dentro da seção Develop, clique em Realtime Database. Um botão “Criar banco de dados” aparecerá à direita. Clique nele para criar seu primeiro banco de dados no Firebase.

Em seguida, você terá que escolher entre várias opções de localização geográfica para seu novo banco de dados. Selecione aquele que está mais próximo de seus usuários. Este é um aspecto importante para minimizar a latência de sua API, principalmente em aplicativos em tempo real.

A próxima etapa é configurar as regras básicas de segurança para seu banco de dados. Você pode optar pelo modo bloqueado e atribuir permissões de acesso conforme necessário ou optar pelo modo de teste, que permite todas as leituras e gravações.

Você pode começar com a opção de modo de teste para não complicar as configurações de segurança no início. Você sempre pode criar regras posteriormente para definir a configuração de segurança com maior granularidade.

Assim que você terminar de configurar seu banco de dados, a API correspondente também será ativada na seção de APIs e serviços do seu console pessoal no Google Cloud Platform.

Programação da API Firebase

Neste ponto, você já tem os elementos básicos do seu projeto configurados no console do Firebase. A próxima etapa é escrever seu código API. Para fazer isso, você precisará inicializar a hospedagem e as funções do Firebase em seu computador local. Você pode instalar firebase-tools usando npm:

 npm install -g firebase-tools

Em seguida, você pode fazer login no firebase e inicializar seu projeto com os seguintes comandos:

 firebase login firebase init

Será exibida uma tela de boas-vindas na qual o Firebase informa a pasta na qual seu projeto será inicializado e um menu de opções aparecerá.

Nesse menu, selecione Funções e Hospedagem (a opção Hospedagem permitirá que você tenha um URL personalizado para a API que você desenvolverá). Em seguida, escolha na lista o aplicativo Firebase criado anteriormente e, em seguida, selecione o idioma a ser usado. Para desenvolver uma API da web, você pode optar por JavaScript.

Se você for usar dependências de pacote, instale-as com npm dentro da pasta de funções. Então você pode começar a escrever o código para suas funções. Lembre-se de incluir os pacotes firebase-functions e firebase-admin, junto com quaisquer outros pacotes de que você precise:

 import * as functions from 'firebase-functions'; import * as admin from 'firebase-admin';

Para usar o banco de dados em tempo real, você deve especificar seu URL ao inicializar o SDK do JavaScript. O URL está localizado na seção Realtime Database do Firebase console. Você pode reconhecê-lo por seu formato:

 https://<database-name>.<region>.firebasedatabase.app

Você pode usar o seguinte snippet para inicializar seu SDK, substituindo os dados que correspondem ao objeto de configuração do seu projeto:

 var config = { apiKey: "apiKey", authDomain: "projectId.firebaseapp.com", databaseURL: "https://databaseName.firebaseio.com", storageBucket: "bucket.appspot.com" }; firebase.initializeApp(config); var database = firebase.database();

Depois de escrever o código da função da API, é hora de implantar. Mas antes de fazer isso, você terá que fazer algumas alterações em firebase.json, adicionando as seguintes linhas, modificadas de acordo com a configuração do seu projeto:

 "rewrites": [ { "source": "/api/v1/**", "function": "webApi" } ]

A próxima etapa é a implantação. Na primeira vez, você deve fazer uma implantação completa, executando o comando:

 firebase deploy

Em implantações subsequentes, você poderá implantar apenas as funções, usando o parâmetro –only functions.

Depois de executar o comando de implantação, a Firebase CLI exibe o URL dos endpoints HTTP de suas funções no terminal, que você pode usar para invocar suas APIs de um aplicativo da web. O URL contém o ID do seu projeto e uma região para a função HTTP. Por exemplo, o seguinte URL pode ser usado para chamar uma função de consulta de item, passando-o itemid = 1 como um parâmetro:

 https://us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1

Para executar a função, abra o URL com os parâmetros correspondentes em um navegador.

Observe que a implantação no ambiente de produção requer uma assinatura do plano Firebase Blaze, que é pré-pago, como você pode ler na página de preços do Firebase. É um serviço pós-faturamento, o que significa que você é cobrado pelo uso no final de cada mês.

Se você não tiver uma assinatura do Blaze, o comando de implantação não exibirá o URL da API. Em vez disso, você verá uma mensagem informando que você deve se inscrever no plano Blaze se quiser implantar no ambiente de tempo de execução. Nesse caso, você ainda pode usar o Firebase Local Emulation Suite para criar e testar aplicativos em sua máquina local, em vez de implantá-los no ambiente de produção do Firebase. O teste local é útil para evitar custos desnecessários durante o desenvolvimento do aplicativo, pois cada teste executado pode gerar cobranças em sua conta.

Teste e Prototipagem Local

A ferramenta Local Emulator Suite oferece uma interface de usuário integrada que torna a prototipagem fácil e útil para testar seus aplicativos em sua máquina local.

Com a interface de usuário do Emulator Suite, você pode testar seus designs de banco de dados, seus fluxos de trabalho do Cloud Functions, analisar o desempenho dos serviços de back-end e avaliar as mudanças nas regras de segurança, entre outras tarefas. É basicamente um sandbox seguro para testar a funcionalidade da API antes de enviá-la para um ambiente de produção.

Para emular suas funções ou testar seu aplicativo localmente, execute emuladores Firebase: start. Você deve ter o Java instalado para poder usar o emulador do Firestore. Se você não tiver, pode instalá-lo aqui.

Quando você invocar o Emulador do Firestore, o comando retornará uma URL que permitirá que você abra a interface do usuário do Emulator Suite em seu navegador. Por padrão, este URL será localhost: 4000, mas pode variar em cada máquina.

Você também obterá um URL completo para sua função HTTP. Este URL será semelhante a:

 http://localhost:5001/apiproject-8753c/us-central1/itemQuery

apenas terá o nome do seu projeto, o nome da sua função e também pode ter um número de porta diferente em sua máquina local.

Para testar a função, copie a URL retornada pelo emulador, adicionando quaisquer parâmetros necessários (por exemplo,? Itemid = 1) e insira-o em uma nova aba do seu navegador. Os resultados da execução da API aparecerão na IU do Emulator Suite.

Na guia Logs, você verá novos logs indicando que a função itemQuery () foi executada. Se sua função gerar novos dados em seu banco de dados Firestore, você os verá na guia Firestore.

Ganhando mais exposição para sua API

Se você quiser que as APIs que você desenvolve se tornem populares, o Firebase pode ajudá-lo com isso também. Não apenas porque permite que você crie seu aplicativo com mais rapidez, reduzindo muito o trabalho de colocar os serviços de back-end em funcionamento, mas também por ajudá-lo com o posicionamento do produto. Como isso é possível? Simplesmente porque os aplicativos associados ao Firebase se classificam melhor nas classificações de pesquisa do que outros aplicativos.

Além disso, leve em consideração a API de indexação de aplicativos do Firebase. Essa ferramenta melhora as classificações de pesquisa de links de aplicativos e ajuda os usuários a encontrar o conteúdo desejado. Ele também coloca o botão Instalar após o botão da página inicial do seu aplicativo para que os usuários interessados ​​estejam a apenas um clique de se tornarem usuários do seu aplicativo.

Concluindo, o Firebase não só oferece serviços de back-end que aceleram drasticamente o desenvolvimento de sua API, mas, uma vez que esteja funcionando e sendo exposto ao mundo, ele também ajuda a promovê-lo - e ganhar dinheiro com isso.