Entendendo o Firebase e suas principais funcionalidades

Entendendo o Firebase e suas principais funcionalidades
Andre Louis Souza Ribeiro
Andre Louis Souza Ribeiro

Compartilhe

Resumo

Neste artigo vamos entender o que é o Firebase e os principais serviços que ele disponibiliza em sua plataforma. Além disso, vamos explicar como esses serviços podem ser utilizados na sua aplicação e a suas limitações.

Então, vamos lá?

Banner da Escola de Mobile: Matricula-se na escola de Mobile. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

Introdução

Hoje em dia, construir as chamadas aplicações completas não é uma tarefa fácil, porque estamos falando de construir o front-end, back-end e o mobile de uma mesma aplicação. Além disso, é necessário manter tudo isso funcionando e se comunicando para que a aplicação funcione corretamente. Mas será que existe alguma maneira de facilitar esse processo de construção de uma aplicação ?

Sim, existem serviços que foram criados para facilitar todo esse processo de construção das aplicações, de maneira que o seu foco seja todo voltado para as aplicações front-end e mobile. E um destes é o Firebase, um serviço mantido pela Google que tem sido utilizado por devs em todo o mundo.

O Firebase possui muitos serviços e funcionalidades em sua plataforma, por isso, neste artigo vamos abordar os mais utilizados e aqueles que acreditamos que podem agregar na sua aplicação. Dito isso, vamos começar entendendo o que é o Firebase.

O que é o Firebase?

O Firebase é uma plataforma de desenvolvimento de aplicativos web e móveis mantida pela Google, ou seja, é um conjunto de ferramentas e serviços que tem como objetivo ajudar devs a construir aplicativos de alta qualidade com rapidez e facilidade. E como ele ajuda no desenvolvimento de uma aplicação?

O Firebase é um back-end as a service, que traduzido significa um “back-end como serviço”, que tem como objetivo fornecer a devs um conjunto de serviços de back-end, como autenticação, análise de dados, armazenamento de dados, notificações, banco de dados e muitos outros, sem a necessidade de que seja desenvolvido um back-end para isso. Logo, você consegue utilizar um back-end sem se preocupar com sua construção e infraestrutura.

A ideia é que com o uso do Firebase, o foco seja o desenvolvimento da aplicação front-end em si, e que deixe toda essa parte de back-end com o Firebase que tem muitos dos serviços prontos para uso, sendo necessário apenas ativá-los ou configurá-los. Além disso, é possível integrar o Firebase com diversas linguagens e serviços, como JavaScript, Java, Swift, C++, Unity, entre outros.

Hoje em dia diversas empresas utilizam o Firebase em suas aplicações e jogos, por exemplo, Duolingo, Trivago, Alibaba, Lyft e a Gameloft. E qual será o motivo do Firebase ser um serviço tão utilizado atualmente?

Um dos principais motivos que tornam o Firebase tão interessante são os serviços e funcionalidades que possui, sendo eles: autenticação, banco de dados em tempo real, envio de notificações, análise de uso dos dados e hospedagem da aplicação. Muito interessante, não é? Então, a partir daqui vamos entender mais a fundo alguns desses serviços. Vamos lá!

Vale ressaltar aqui que o Firebase conta com um plano gratuito para uso (Plano Spark), que conta com limites bem generosos para começar a utilizar. Caso ultrapasse os limites de uso do Plano Spark, existe o Plano Blaze cujo pagamento é por utilização.

Principais Serviços do Firebase

Firebase Realtime Database

Sabe quando você está conversando com outra pessoa por mensagem, e ao mesmo tempo que você envia uma mensagem consegue receber outras, quase de forma simultânea? O motivo disso ser possível é que essas aplicações geralmente funcionam em tempo real, e essa funcionalidade é importante porque permite que os usuários obtenham respostas imediatamente sem atrasos perceptíveis. Se a aplicação não for em tempo real, os usuários podem se sentir frustrados e descontentes com a aplicação.

O Firebase Realtime Database é um banco de dados NoSQL hospedado na nuvem que permite armazenar e sincronizar dados em tempo real. Ele é projetado para ser escalável, ou seja, se sua aplicação crescer de forma rápida ele irá dar conta da demanda. Além disso, irá oferecer uma API fácil de usar para acessar e atualizar dados em sua base.

O Realtime Database conta com algumas funcionalidades bem interessantes: como atualização em tempo real, funcionamento off-line e a acessibilidade a partir de dispositivos clientes.

Firebase Authentication

Muitas vezes é necessário que a aplicação saiba quem é o usuário que a está utilizando e uma das formas de fazer isso é com a autenticação, que irá garantir que somente pessoas autorizadas tenham acesso a recursos específicos da aplicação. Isso ajuda a proteger a privacidade e a segurança dos dados do usuário e da própria aplicação.

Além disso, a autenticação também é importante para conhecer a identidade de um usuário e manter seus dados sincronizados em diferentes dispositivos. Esse recurso tão importante também está presente no Firebase, como o Firebase Authentication.

O Firebase Authentication é uma plataforma de autenticação que permite aos desenvolvedores incluir funções de login e registro em seus aplicativos através de serviços back-end, SDKs e bibliotecas de IU. Ele suporta autenticação com email, senha e número de telefone, além disso também suporta contas Google, Facebook, Twitter, Github, entre outras, e também fornece ferramentas para gerenciar usuários, incluindo redefinição de senha e verificação de email.

O Firebase Authentication também possui diversas funcionalidades específicas, como por exemplo a autenticação anônima, que autentica o usuário criando uma conta anônima temporária e depois, quando o usuário quiser se cadastrar, essa conta será atualizada para uma conta normal.

Caso tenha interesse em conhecer mais funcionalidades, recomendo a documentação do Firebase Authentication.

Firebase Cloud Messaging

Quando falamos em funcionalidades que não podem faltar nas aplicações de hoje em dia, uma delas seria a de enviar notificações, pois essa funcionalidade permite manter os usuários informados sobre atualizações relevantes, eventos, promoções, atualizações etc. Logo, isso ajuda a aumentar o engajamento com a aplicação. Além disso, as notificações também podem ser usadas para enviar lembretes e alertas importantes para os usuários quando não estão com a aplicação aberta.

O Firebase Cloud Messaging (FCM) é uma solução de mensagens multiplataforma que permite enviar mensagens de forma confiável, ou seja, é uma plataforma de envio de notificações push para aplicativos móveis. O FCM permite que os desenvolvedores enviem notificações para seus usuários de forma fácil e rápida, oferecendo suporte a múltiplos dispositivos e plataformas.

O FCM também possibilita o envio de notificação em background, que são notificações push enviadas para um dispositivo sem que o aplicativo esteja aberto no momento. Usualmente elas aparecem como uma notificação na barra de status do dispositivo, e temos a opção de abrir o aplicativo apertando na notificação ou removê-la, deslizando para o lado.

Além disso, nesse serviço é possível utilizar a segmentação de mensagens versátil, em que você pode enviar uma mensagem para:

  • Um único dispositivo, por exemplo, uma pessoa que tenha feito o login em outra localização.
  • Um grupo de dispositivos, por exemplo, pessoas que tenham deixado de usar o aplicativo.
  • Dispositivos inscritos em um tópico, por exemplo, pessoas interessadas em um mesmo evento.

Caso tenha interesse em aprofundar seus conhecimentos nesse serviço, deixo aqui a documentação do Firebase Cloud Messaging e também um artigo que ensina enviar mensagem tipo Push para dispositivos Android e iOS.

Cloud Firestore

Um outro ponto importante quando falamos de desenvolvimento de aplicações é a forma como os dados estão organizados e estruturados, e para isso utilizamos o banco de dados, que é muito importante para uma aplicação porque armazena e gerencia informações de forma organizada e acessível.

O Firebase Cloud Firestore é um banco de dados em nuvem NoSQL, utilizado para armazenar e sincronizar dados com suas aplicações, sejam elas iOS, Android ou web. Além disso, o Cloud Firestore também está disponível em SDKs nativos de Node.JS, Java, Python, Unity, entre outras. É um banco de dados flexível e escalável para desenvolvimento em dispositivos móveis, web e servidores do Firebase e do Google Cloud.

O Cloud Firestore conta com muitos recursos extremamente interessantes, sendo alguns deles:

  • Atualização em tempo real: Utiliza a sincronização de dados para atualizar dados em qualquer dispositivo conectado.
  • Suporte off-line: O Cloud Firestore armazena em cache os dados que o aplicativo está utilizando mais frequentemente, para que, mesmo se o aplicativo estiver off-line, possa gravar, ler, ouvir e consultar dados.
  • Consulta expressiva: Podemos recuperar dados específicos do nosso banco de acordo com os parâmetros de consulta que estiver utilizando.
  • Projetado para Escalar: Utiliza a infraestrutura do Google Cloud e consegue trabalhar bem com alto número de requisições, garantindo a consistência dos dados, operações atômicas e suporte a transações reais.

Além disso, o Cloud Firestore pode ser integrado ao Firebase Authentication para que haja uma maior segurança dos seus dados e maior controle sobre quem está acessando os mesmos. Deixo aqui a documentação do Cloud Firestore caso tenha interesse em aprofundar mais no serviço.

Se quiser utilizar esses serviços no seu App, temos um Alura mais que mostra os primeiros passos em Cloud Firestore no Flutter e também temos um artigo ensinando como criar um chat em tempo real em aplicações com React Native utilizando o serviço do Cloud Firestore.

Google Analytics

Analisar os dados de uma aplicação é importante porque permite aos desenvolvedores e aos gestores de aplicativos coletar e analisar dados sobre o uso daquela aplicação. Isso pode ajudar a entender como os usuários estão interagindo com o aplicativo, quais recursos são mais populares, onde os usuários estão tendo problemas, informações sobre usuários ativos e outras informações valiosas. Além disso, com essas informações, os desenvolvedores podem tomar decisões mais precisas sobre como melhorar o aplicativo, otimizar as funções e aumentar a satisfação do usuário. E isso pode ser feito utilizando o Google Analytics do Firebase.

O Google Analytics é uma solução de análise da aplicação, que oferece uma avaliação do uso e engajamento dos usuários em seus aplicativos, fornece uma variedade de relatórios, métricas e dados valiosos, que podem ser utilizados para a melhoria do aplicativo e para entender como os usuários estão utilizando o seu aplicativo. O Analytics se integra a todos os recursos do Firebase e fornece relatórios para eventos distintos que você pode definir usando o SDK do Firebase.

Alguns do principais recursos do Google Analytics são:

  • Relatórios ilimitados: O Analytics fornece relatórios ilimitados sobre até 500 eventos distintos.
  • Segmentação de público: No console do Firebase, é possível criar públicos-alvo personalizados utilizando informações de dispositivos, eventos personalizados ou propriedades do usuário. Esses públicos podem ser usados com outros recursos do Firebase ao segmentar novos recursos ou mensagens de notificação.

Caso tenha interesse em aprofundar o seu conhecimento nessa área, recomendo a documentação do Analytics.

Firebase Hosting

Entre os passos da construção de uma aplicação, a hospedagem é um dos que não pode faltar. Hospedar uma aplicação vai permitir que ela esteja disponível para ser acessada por usuários em qualquer lugar e a qualquer momento, desde que tenham conexão à internet. Além disso, a hospedagem também garante que a aplicação esteja sempre atualizada e funcionando corretamente.

O Firebase Hosting é um serviço que permite hospedar aplicativos da web, conteúdo estático, dinâmico e até mesmo microsserviços nos servidores da Google, de maneira rápida e segura. Além disso, por ser fácil de usar e configurar é uma ótima opção para desenvolvedores que desejam hospedar seus aplicativos de forma prática sem se preocupar muito com a configuração do servidor, focando mais no desenvolvimento da aplicação em si.

Entre os principais recursos do Firebase Hosting, podemos citar:

  • Exibição de conteúdo por meio de uma conexão segura: O Firebase Hosting já é integrado ao SSL, garantindo que o conteúdo seja entregue com segurança.
  • Entrega rápida de conteúdo: Todos os arquivos que você carrega serão armazenados em cache em SSDs nas bordas da rede de entrega de conteúdo (CDN) em todo o mundo e oferecidos através de serviços de compressão, e o melhor método de compactação será selecionado automaticamente para o conteúdo. Dessa forma, independente de onde a aplicação seja utilizada, ela será entregue rapidamente.
  • URLs de visualização temporária: É possível utilizar URLs de visualização temporária para testar e visualizar a aplicação antes da mesma ficar disponível para todos os usuários.
  • Firebase CLI: Utilizando o Firebase CLI, você pode colocar seu aplicativo em funcionamento em segundos e somente com alguns comandos.

Firebase Dynamic Links

Vamos dizer que um usuário aperte em um link para uma promoção do seu aplicativo, mas este usuário ainda não tem o aplicativo instalado. O mais interessante nesse caso seria levar o usuário até a loja primeiro, para que ele instale o aplicativo e depois consiga visualizar a promoção.

O Firebase Dynamic Links vai fornecer URLs inteligentes que permitem aos usuários atuais e potenciais serem direcionados para conteúdos específicos dentro do aplicativo. Se o usuário já tiver o aplicativo instalado, ele será direcionado diretamente para o conteúdo, e caso não o tenha instalado, será direcionado à loja para baixar o aplicativo primeiro.

A ideia do Dynamic Link é que o usuário tenha a melhor experiência para a plataforma que ele estiver utilizando quando abrir o link, que vai funcionar da maneira que você preferir. Caso tenha interesse em conhecer mais esse serviço, recomendo a documentação do Firebase Dynamic Links.

Vantagens e desvantagens

Abordamos até aqui alguns dos serviços mais utilizados e as funcionalidades que podem ser incorporadas ao aplicativo utilizando o Firebase. Dito isso, podemos dizer que as vantagens de integrar o Firebase à sua aplicação são:

  • Facilidade de uso: O Firebase é fácil de configurar e usar, o que permite que os desenvolvedores possam construir aplicativos rapidamente.
  • Sincronização em tempo real: Como abordado nos tópicos anteriores, o Firebase possui serviços que contam com listeners que sincronizam os dados assim que identificam mudanças nas coleções, um recurso extremamente importante hoje em dia.
  • Autenticação: O Firebase conta com diversos tipos de autenticação, um recurso importante para garantir a segurança da sua aplicação, o controle de acesso e manter um usuário logado em vários dispositivos.
  • Escalabilidade: O Firebase é projetado para escalar de forma automática, logo você não precisa se preocupar com a configuração dessa parte.
  • Análise de dados: O Firebase conta com serviços que fornecem diversos relatórios sobre como anda o uso do seu aplicativo.

Mesmo assim, o Firebase possui desvantagens que você deve levar em consideração caso queira utilizá-lo. E aqui temos algumas delas:

  • Preço: É possível utilizar o plano gratuito (Spark), com limites para o uso do Firebase e seus serviços. Caso ultrapasse os limites que o plano Spark permite é necessário utilizar o plano Blaze, que é um serviço cobrado pela utilização. No site do Firebase você encontra todos esses limites e valores de forma bem detalhada.
  • Limites: Caso esteja utilizando o plano Spark gratuito, você vai encontrar uma limitação para alguns serviços do Firebase, e caso atinja esse limite, o serviço para de funcionar. Então, se deseja utilizar o Firebase para uma aplicação maior, vale a pena avaliar as limitações do plano Spark.
  • Controle e Acesso: Por estar utilizando o Firebase que, no caso, é uma plataforma de código fechado como Backend as a Service (“back-end como serviço”, em inglês, ou BaaS), você só conseguirá utilizar funcionalidades que estejam disponíveis no Firebase.

Conclusão

Ao longo deste artigo, foi possível compreender o que é o Firebase, conhecer os principais serviços disponíveis em sua plataforma, como o Cloud Firestore, Cloud Messaging, Realtime Database, Google Analytics, entre outros. Além disso, vimos sobre como esses serviços podem agregar na sua aplicação e algumas vantagens e desvantagens de utilizar o Firebase em seus projetos.

Caso tenha interesse em mergulhar ainda mais no mundo do Firebase e ver na prática como construir aplicações utilizando esses serviços que mostramos aqui, recomendo a formação Firebase com React Native e a formação Firebase com Android.

Espero que tenha gostado, bons estudos e até a próxima!

Andre Louis Souza Ribeiro
Andre Louis Souza Ribeiro

André é estudante de Engenharia da Computação na UFES. Atualmente, faz parte do Scuba team Mobile | Escola Semente, você o encontrará atuando nos fóruns de mobile. Ele está sempre buscando aprender alguma tecnologia nova ou algo novo na área. Atualmente a linguagem que mais utiliza é o Javascript.

Veja outros artigos sobre Mobile