Como utilizar o Firebase com Flutter — FlutterFire (Part 5)

Cloud Firestore

Igor L Sambo💙🇲🇿
GDG Maputo
Published in
4 min readMar 5, 2021

--

A necessidade por opções de base de dados com maior performance e flexibilidade no consumo e gestão de dados levou aos engenheiros da Google a pensar numa solução à altura de tais requisitos. É então que temos o Cloud Firestore, uma evolução do Realtime Database, que é igualmente NoSQL parte do Firebase.

Este artigo é parte de uma série de artigos relacionados ao FlutterFire que conta com os seguintes artigos:

  1. Como utilizar o Firebase com Flutter (Introdução — Configurando o FlutterFire)
  2. Como utilizar o Firebase com Flutter (FlutterFire Auth — Email/Password)
  3. Como utilizar o Firebase com Flutter (FlutterFire Auth — Phone)
  4. Como utilizar o Firebase com Flutter (FlutterFire Auth — Social(Google))
  5. Como utilizar o Firebase com Flutter (Cloud Firestore)(este artigo)

Cloud Firestore

Cloud Firestore é uma base de dados do tipo NoSQL assíncrona baseada em cloud que permite realizar operações de forma bastante flexível e que oferece suporte para trabalhar com dados em modo offline com base em streams.

Para colocar o cloud firestore em funcionamento em nossa aplicação é necessário adicionar a dependência ao nosso pubspec.yaml.

O cloud firestore possibilita realizar todas as operações de CRUD de forma bem simplificada, assim como pôde-se observar com as funções de autenticação, contudo, aqui iremos observar a criação, inserção de dados e efectuar uma query.

Mas antes, é importante notar que para o Android pode se dar o caso de enfrentar o erro de multiDex após algumas interações, podendo resolver adicionando

ao android/app/src/build.gradle>defaultConfig e

ao android/app/src/build.gradle>dependencies

1. Criar base de dados

Antes que se comece a realizar as operações de CRUD é necessário criar a base de dados pela consola do nosso projecto firebase no menu Cloud Firestore.

2. Inserir dados

Primeiro é importante notar que para inserir documentos (dados) em um primeira tabela não precisa de uma instrução inicial para criar a mesma, até porque não lidamos com tabelas mas sim com coleções e basta apenas referenciar a coleção que pretendemos usar e caso a mesma não exista o firebase se responsabiliza por criar e adicionar o documento.

3. Efectuar query

Existe uma gama de queries que podem ser feitas com recurso ao firestore, desde comparações entre valores singulares, intervalos e em arrays com indicadores como isEqualTo, isGreaterThan, arrayContainsAny.

Para ilustração vamos ver o caso de um query que nos traz snapshot para o caso em que o nome é igual a um valor passado como argumento.

4. Actualizar documento

Actualizar um documento é igualmente straight-forward como podemos ver para as implementações anteriores, bastando apenas:

Esta função é apenas útil se realmente conhecermos o documentId do documento em questão, o que geralmente não acontece, para actualizar baseado em um elemento mais prático de ter acesso podemos:

5. Apagar documento

A ideia para apagar um documento em específico é a mesma que para a actualização, bastando apenas substituir o update pelo delete.

Implementação

A nossa UI é algo como

Notemos que logo que a adição é concluída a UI actualiza sem precisar refrescar a página, isto porque está a se trabalhar com streams que permitem manter a lista sincronizada com o firestore em tempo real.

Nota: Este exemplo apenas implementa a inserção, não tendo a actualização e remoção.

O projecto já actualizado está disponível pelo github, espero que tire proveito do mesmo e contribua com melhorias em qualquer aspecto.

Espero que tenha aprendido com este artigo e que se tenha divertido enquanto lia.

Obrigado por acompanhar até ao fim e espero por você no próximo artigo.

Para questões e sugestões esteja a vontade para tal nos comentários, email igorlsambo1999@gmail.com ou twitter @lsambo02.

Obrigado e até ao próximo artigo!!!

--

--