Todos os serviços oferecidos pelo Firebase. fonte : firebase.google.com

Primeira Impressão do “novo” Firebase

Dario Mungoi
Google Developer Experts
4 min readJun 7, 2016

--

No passado dia 18 de Maio, tive a oportunidade de participar pela primeira vez no Google IO e até este momento estou a tentar processar toda informação e os novos contactos com developers interessantes que conheci durante o evento de um universo de 7000 que se faziam presente no Shoreline Amphiteather em Mountain View, California.

Como não poderia fugir a regra, durante o evento varias novidades foram anunciadas, desde o novo assistente para casas denominado Google Home a novas aplicações como Allo e Duo que tem “Machine Learning” como um componente principal para a excelente experiência que elas prometem.
Caso não tenhas tido a a chance de ver o Keynote, recomendo que faça uma pausa de aproximadamente 2h neste momento para assistir.

De todos os tópicos anunciados durante o IO, um dos mais falados e que achei muito interessante foi o lançamento do novo Firebase.

Para quem não sabe o que é o Firebase, de forma muito simples, é um serviço que oferece ferramentas e infraestrutura necessária para que possamos desenvolver, testar e lançar aplicações com qualidade e escaláveis desde o dia 1.

Para melhor entender a esta definição, irei falar sobre 4 serviços do Firebase que achei interessantes.

Realtime Databases

Para falar de realtime databases, devemos primeiro dar alguns passos para trás e entender como fazíamos/fazemos as coisas sem o Firebase.
Quando temos a ideia de construir uma app e precisamos de persistir dados em algum sitio o nosso primeira instinto é pensar em tirar um framework, desenvolver uma REST API sobre o framework, definir a forma como os dados estarão estruturados e o tipo de base de dados a utilizar(SQL, MongoDB, etc). Tudo isto é muito interessante e bonito ate o momento em que temos de implementar mais funcionalidades que possam requerer que os dados sejam sincronizados em todos dispositivos do utilizador e nos encontramos em uma situação de ter de escrever muito código no android assim como nas outras plataformas para fazer algo muito simples.

Realtime Databases é simplesmente uma base de dados na cloud em que os dados são guardados utilizando a Javascript Object Notation ( JSON ) e a medida que os dados são modificados todas as aplicações cliente Web, Android e iOS são actualizadas instantaneamente e a única coisa com que devemos nos preucupar e em estruturar como queremos guardar os dados.

Autenticação

Voltando ao exemplo anterior em que criamos uma nova aplicação, a dada altura precisaríamos de começar a dar o poder ao utilizador de personalizar a aplicação ao seu gosto e para isso teríamos de implementar um sistema de autenticação para permitir que cada utilizador só possa aceder aos dados que esteja autorizado.

Este é um outro problema que começa primeiro por nos colocar na duvida entre implementar um sistema de autenticação de raiz versus utilizar a integração com redes sociais a problemas como fazer a devida gestão dos casos em que o utilizador decida fazer “merge” de todas estas contas.
O serviço de Autenticação do Firebase oferece API’s que permitem a integração com o Google+, Twitter, Facebook, Github ou a combinação e-mail/password sem que tenha de se preocupar com detalhes específicos de cada um destes mecanismo pois ao registar um novo utilizador independentemente do provider , o Firebase cria um FirebaseUser que contem um id único que poderá utilizar para guardar na realtime database associado a outros dados do utilizador.

Storage

Para completar a funcionalidades da realtime database que nos ajuda a guardar e sincronizar dados de forma estruturada, o Firebase possui o Storage que oferece um local e mecanismos necessários para o armazenamento de ficheiros( photos, musicas entre outros).

Se tomarmos como exemplo um caso de uso em que o utilizador decide adicionar uma foto ao seu perfil, a partir das API’s do firebase é possível fazer o upload da imagem, pegar o link e guardar na realtime database juntamente como os outros dados do seu perfil.
Estas API’s vão ainda mais a fundo e resolvem problemas comuns ao lidar com o envio e descarga de ficheiros como fraca conectividade e automaticamente retomar as operações após qualquer tipo de falhas.

Cloud Messaging e Analytics

Grande parte do que me deixou feliz no Firebase foi poder ter estas 2 componentes na mesma plataforma que permitiram analisar o comportamento dos utilizadores e enviar notificações forma fácil e apropriada.

Todo processo começa com o Firebase analytics que só por adicionar a dependência na aplicação consegue fazer a leitura de informação básica sobre como os utilizadores estão a utilizar a aplicação e com algumas linhas de código a mais podemos controlar eventos, telas e outro tipo de métricas que podem variar de projecto para projecto.
Ao obter informação sobre como os utilizadores estão a utilizar a aplicação o Cloud Messaging entra com o papel de oferecer mecanismos para facilmente notificar os utilizadores.
O Firebase Cloud Messaging de forma geral é uma versão melhorada do Google Cloud Messaging com o poder de nos permitir definir facilmente alguns parâmetros como o segmento de utilizadores que queremos(com base no analytics), recorrência de uma notificação e muitos outros dependendo da necessidade e criatividade da equipe de desenvolvimento.

Apesar de ter mencionado apenas 4 serviços oferecidos pelo Firebase os quais ja tenho estado a trabalhar e achei interessante, o Firebase tem ainda muito mais e a minha opinião é que veio para ficar e mudar a forma tradicional como sempre olhamos para o desenvolvimento tradicional do Backend de um determinado produto.

E com este primeiro post, dou inicio a série sobre o Firebase e o Android na seguinte sequência:

1.Realtime Databases Part 1- Introducao

2. Realtime Database Part 2- Interligacao com uma android App

3. Autenticacao : Firebase + Google Sign in no Android

4. Realtime Database Part 3- Regras de Segurança

Obrigado por ler.

Eu sou Dario Mungoi, um android GDE de Moçambique e Co-Fundador do Moovi.
Escrevo todas as Terças e Sextas e caso tenhas alguma duvida, sugestão, questão não hesite em deixar um comentário que ficarei feliz em levar a conversa a diante.

--

--

Dario Mungoi
Google Developer Experts

Senior Android Developer at @Shopify, Design Sprint Master, former Android GDE