Dev

Firebase – Não desenvolva o backend

Você já ouviu falar no Firebase?

Firebase é um serviço do Google para agilizar o desenvolvimento de sites e aplicativos, disponibilizando ferramentas backend automatizadas. Então, se você precisa desenvolver algo muito rápido, focar nas regras de negócio sem precisar modelar banco, criar serviço de autenticação e outros o Firebase é pra você!

Introdução

A definição de Firebase é Backend aService (BaaS). Além de agiliar o desenvolvimento, por ser uma ferramenta cloud, ele é escalável e possui um pacote gratuito.

Caso de uso: Imagine que você precise validar a ideia de um produto, mas ainda não é o momento de detalhar arquitetura e outros, mas preciso de algo funcional (POC)?

Começando com Firebase

Entrando no Console do Firebase você tem que criar um projeto (ou usar algum de demonstração).

Depois de criado, você diz a que plataformas quer adicionar o Firebase (iOS, Android ou Web). Escolhendo a opção web, ele vai te gerar um código similar a esse aqui:

Depois basta colar esse código no seu HTML e você já consegue usar os serviços do Firebase.

Serviços

Tem serviço pra caramba, mas vou tentar resumir o principal objetivo de cada um.

Analytics

O Firebase Analytics – não, ele não matou o Google Analytics – é um analytics focado em medir o uso do aplicativo, e o envolvimento do usuário.

Ele captura diversos eventos e propriedades do usuário automaticamente, e você pode criar os seus. O interessante de utilizar o Firebase Analytics ao invés do Google Analytics é que o primeiro se integra a outros serviços do Firebase, e assim você consegue ver em apenas uma ferramenta como está o desempenho de uma campanha específica, da utilização do aplicativo e outros.

Authentication

Serviço de autenticação prontinho com vários métodos de login.

As opções atuais são:

  • Email/senha
  • Smartphone (por SMS)
  • Google
  • Facebook
  • Twitter
  • Github
  • Anônimo

Que tal ver um vídeo do Firebase Authentication em ação?

 

É tão simples, tão simples que vou colocar um código JS aqui de como criar usuário:

É o famoso: faz o gol e me abraça!

Database

Database ou Realtime Database é um banco de dados na nuvem NoSQL. NoSQL é um termo pra descrever bancos de dados não relacionais.

Se você está acostumado com Web, pega essa, os dados são armazenados como: JSON!

Outra funcionalidade interessante além do tempo real, que é muito conhecido, mesmo ele sendo um banco na nuvem, ele mantém os dados no disco mesmo offline. Quando sua conexão com a internet volta, ele sincroniza o cliente pro estado atual do servidor.

Nesse caso estaríamos salvando os dados de um usuário, substituindo qualquer informação que tivesse no local específico.

Storage

Esse serviço é para fazer upload de conteúdo dos seus usuários, como por exemplo a imagem de perfil do usuário. Nesse caso, ele armazena esses dados no Google Cloud Storage (consequentemente tem redundância global).

Além do upload de arquivos, você pode também especificar metadados para ele.

O irado é, ele consegue lidar com redes instáveis, o que permite que o usuário consiga fazer upload pelo celular, mesmo em uma internet móvel. Você consegue gerenciar uploads, pausando, cancelando e continuando os uploads.

Durante um upload, você pode ver como está o andamento, com vários tipos de evento. Tem muita coisa maneira no Storage.

Hosting

O Firebase Hostings é uma hospedagem para Progressive Web Apps (PWAs) ou sites estáticos. Resumindo, é uma hospedagem para sites com apenas linguagens de front-end. Então para desenvolvedores AngularJS ou Jekyll é uma excelente possibilidade.

O projeto ficará em um subdomínio de firebaseapp.com. Você consegue disponibilizar com SSL além de uma CDN global a partir dos seus arquivos locais.

Instalando a CLI do Firebase, pra colocar  o site em produção, o comando é firebase deploy

Simplão né?

Cloud Functions

É uma forma de automatizar o seu backend disparando funções a partir de eventos do Firebase. O código fica na nuvem, e gerenciado pelo Google, ou seja: 0 manutenção.

Test Lab

Test Lab ou Test Lab for Android é uma estrutura em nuvem pra testar aplicativos Android. Mesmo que você não tenha escrito código de teste, o Test Lab percorre seu aplicativo atrás de falhas.

Os resultados do teste são armazenados no Firebase em formato de capturas de tela, vídeos ou registros.

Os testes são realizados em dispositivos reais, em um data center do Google (os caras são donos do Android, lembra?).

Outra coisa interessante, é que o Test Lab está integrado ao Android Studio.

Crash Reporting

O Crash Reporting é um gerador de relatório de erros. Ele funciona pra Android e iOS (coitado do Windows Phone/Mobile).

Os erros são agrupados por conjuntos de rastreamento e organizados de acordo com a gravidade do impacto nos usuários.

Atualmente, está na versão beta.

Performance

É uma forma de você receber dicas para melhorar o desempenho do seu app. Você pode traçar fluxos e descobrir em qual passo está o problema de performance.

Você também consegue segregar por versão do aplicativo, sistema operacional, país, tipo de rede e outros.

Notifications/Cloud Messaging

Tem como base o Firebase Cloud Message. Se você ainda não está acostumado, são as tão famosas Push Notifications para apps. Ele já cria pequenos segmentos para você, e é simples enviar notificação apenas para quem você quer. O interessante é que a partir da GUI você consegue enviar notificação sem programar nada, ou quase nada.

Parte mais interessante é que é integrado ao Firebase Analytics e você vê quantos dispositivos receberam as notificações, quantos abriram, entre outros.

Remote Config

Remote Config é algo sensacional, se você quer criar um aplicativo mais dinâmico, onde de tempos em tempos algumas coisas possam mudar, sem que o usuário precise baixar uma nova versão do app pela loja.

Outra coisa interessantíssima, é que você pode também proporcionar experiências diferentes no app, para segmentos diferentes (por idioma, versão do app, públicos criados no Firebase Analytics e outros).

Uma coisa muito importante no Marketing Digital é o teste A/B, e o Remote Config possibilita você fazer isso.

Eu tenho uma pegada em marketing digital então, particularmente, acho esse recurso fod# demais.

Dynamic Links

Outro recurso sensacional para marketing digital, pois você pode configurar o link para abrir diferente em um primeiro acesso, ou durante um lançamento entre outros. A ideia é utilizar estes links em e-mails marketing, mídias sociais, mídias físicas e na web como um todo.

Só pra você entender, por exemplo, um usuário ao clicar no link, eu posso verificar se ele tem o app instalado, e caso não tenha eu o redireciono para a loja. É bem interessante.

Admob

Admob é uma plataforma de monetização de aplicativos, que se usada com os serviços do Firebase pode ficar ainda mais surpreendente.

É simples de escalonar caso – se Deus quiser – o app, de um dia para o outro bombar e você tiver usuários de muito segmentos diferentes. Mesmo assim você ainda vai conseguir direcionar propagandas que agreguem valor aquele usuário.

Pra você ter uma ideia das possibilidades: caso você precise de um novo modelo de anúncio, pois o layout do app mudou, você pode criar um CSS novo para que os anúncios não ‘quebrem’ o layout do seu app.

Irado não?

 

Bom, fiz aqui uma introdução, só pra você ter uma noção dos recursos que o Firebase disponibiliza para apps, principalmente. Como o Google é sinistro, neste exato momento eles podem ter implementado mais serviços ou mais funcionalidades nos serviços que já existem.

Se você quer se aprofundar mais, no Firebase olha a documentação, porque a parte boa da galera do Google ser bem nerd, é que a documentação de qualquer coisa que eles fazem costuma ser irada demais.

Tem exemplos em iOS, Android, JS, Unit, C++ bastante completa.

Ficou com alguma dúvida? Deixa nos comentários que eu vou ter todo o prazer de te ajudar.

André Felizardo

View Comments

Share
Published by
André Felizardo

Recent Posts

Blockchain & Cripto

Desvendando o Potencial da Blockchain e Criptomoedas através da Criptografia Em um mundo onde a…

2 semanas ago

Automatize o deploy de uma aplicação React com Github Actions e FTP

O deploy de uma aplicação React é uma etapa crucial para disponibilizar sua criação na…

10 meses ago

Github Satellite 2020 – Muitas novidades

Satellite 2020 foi a primeira conferência virtual do Github. O Github já tinha sido liberado…

4 anos ago

Web Components – Guia Geral

Neste guia veremos o que são web components, quando usar, sua estrutura e também um…

4 anos ago

Tipos de Frontend

A alguns anos atrás escrevi um texto sobre o que é o frontend, também palestrei…

4 anos ago

SVG – Guia definitivo

O que é SVG é a sigla para Scalable Vector Graphics que traduzindo seria gráficos…

4 anos ago