Backend-as-a-Service (BaaS) é um modelo de serviço no qual os desenvolvedores terceirizam todos os aspectos de bastidores do desenvolvimento da web ou móvel para que possam se concentrar em escrever e manter o front-end em um plug-and-jogue e evite o estresse de escrever código do lado do servidor.

As plataformas BaaS fornecem software para atividades do lado do servidor, como autenticação, gerenciamento de banco de dados, atualização em tempo real, armazenamento, hospedagem e notificações push (para aplicativos móveis). Na última década, vimos o aumento de empresas que oferecem esses serviços, incluindo Firebase , Supabase , Parse , Back4app e AWS Amplify , para citar alguns.

Embora esses serviços de back-end ofereçam essencialmente a mesma solução, eles usam tecnologias de back-end diferentes. Para muitos desenvolvedores, esse é um fator decisivo ao escolher o melhor serviço para um determinado projeto.

Por exemplo, Back4App oferece APIs REST e GraphQL prontos para uso, enquanto o Firebase usa sintaxe NoSQL e não oferece GraphQL pronto para uso.

Neste tutorial, vamos nos concentrar no Firebase e na alternativa de código aberto, Supabase . Começaremos explorando cada plataforma individualmente, depois compararemos Firebase x Supabase e ofereceremos algumas dicas sobre como escolher a melhor ferramenta para seu projeto.

Cobriremos o seguinte em detalhes:

O que é Firebase?

O Firebase foi fundado inicialmente em 2011 por James Tamplin e Andrew Lee. O Google adquiriu a plataforma em 2014 e agora é a principal oferta da empresa para o desenvolvimento de aplicativos.

O primeiro produto do Firebase foi o Firebase Realtime Database, uma API que sincroniza os dados do aplicativo no iOS, Android e na web enquanto os armazena na nuvem do Firebase. O Firebase evoluiu para um serviço BaaS completo com produtos para as fases de desenvolvimento e pós-desenvolvimento.

O Firebase oferece produtos em três fases:

  1. Construir
  2. Liberar e monitorar
  3. Envolva-se

Produtos Firebase 3 fases

Cada fase representa um diferente fase de desenvolvimento. O Firebase criou produtos específicos para cada uma dessas fases.

Construir

A fase de construção cobre produtos que fornecem infraestrutura de back-end para desenvolvimento ativo. Isso inclui serviços básicos usados ​​durante a construção de um aplicativo, como autenticação, armazenamento, banco de dados em tempo real, Firestore, hospedagem, funções de nuvem, mensagens em nuvem, configuração remota e
Firebase ML.

Vamos explorar esses recursos com mais detalhes.

  • Autenticação : o Firebase fornece um serviço de autenticação que permite aos usuários registrar e criar contas em seu aplicativo, incluindo serviços de login de terceiros
  • Armazenamento : o Firebase oferece armazenamento como parte da plataforma Firebase para mídia gerada pelo usuário (imagens, vídeos, áudio, etc.)
  • Hospedagem : o Firebase permite hospedagem, tornando possível construir e hospedar seu aplicativo dentro do mesmo serviço de nuvem
  • Funções de nuvem : as funções de nuvem permitem que você execute seu código do lado do servidor diretamente no Google Cloud, tudo em um ambiente controlado e seguro
  • Firestore : Firestore é um banco de dados NoSQL que permite estruturar seu banco de dados como quiser e consultá-lo na velocidade da luz
  • Mensagens na nuvem : permite que você envie notificações push para seus usuários facilmente em uma base plug-and-play
  • Configuração remota : você pode usar sinalizadores de recursos para determinar quais recursos são ativados ou desativados e, em última análise, o que o torna para produção
  • Banco de dados em tempo real : também é um banco de dados NoSQL que permite sincronizar dados em tempo real e fazer alterações contínuas em seu projeto
  • Firebase ML : você tem acesso a APIs de aprendizado de máquina que podem ajudá-lo a treinar e implantar seus modelos personalizados

Liberar e monitorar

As ferramentas do Firebase nas categorias Release e Monitor são usadas para monitorar o aplicativo depois de desenvolvido e lançado. Essas ferramentas incluem o seguinte.

  • Firebase Crashlytics : monitora as falhas, relata-as em tempo real e fornece informações para ajudá-lo a identificar a causa e resolver os problemas
  • Google Analytics : este utilitário fornece análises detalhadas, tornando mais fácil estudar o comportamento do usuário e agir de acordo com ele
  • Monitoramento de desempenho do Firebase : esses dados ajudam a entender os problemas de desempenho da perspectiva do usuário, incluindo comportamento e latências da rede
  • Configuração remota : você pode personalizar e fazer alterações em seu aplicativo imediatamente. Este recurso é usado com mais frequência em aplicativos para celular
  • Laboratório de teste : este recurso permite que você crie simulações em dispositivos reais e virtuais para testar seu aplicativo antes do lançamento
  • Distribuição de aplicativos : você pode distribuir facilmente versões exclusivas de seu aplicativo para testadores confiáveis ​​

Envolva

Os produtos desta categoria são usados ​​principalmente para aplicativos para celular. Eles ajudam você a envolver seus usuários, otimizar a experiência do usuário e mantê-los felizes.

No plano pago, o Firebase fornece extensões interessantes para ajudá-lo a construir seu aplicativo, adicionar funcionalidade e implantar mais rapidamente. Há muitos para listar aqui, mas os recursos mais importantes incluem o seguinte.

  • Redimensionar imagens : esta extensão permite definir um tamanho específico que pode ser usado para redimensionar imagens carregadas para o armazenamento do Firebase. Ele armazena as imagens originais e redimensionadas no mesmo depósito de armazenamento
  • Exportar coleções para o BigQuery : você pode exportar coleções específicas do Firestore para armazenar no BigQuery , um depósito em nuvem que permite que você consulte seu banco de dados muito rápido. O processo de exportação é incremental, então seu Firestore e BigQuery estão sempre sincronizados
  • Acionar e-mail : você pode acionar um e-mail a ser enviado para um determinado e-mail com base no conteúdo de um documento gravado em uma coleção Firestore especificada
  • Traduzir texto : você pode traduzir strings em seu Firestore para vários idiomas porque o idioma de origem da string é detectado automaticamente por meio da API Cloud Translation
  • Excluir dados do usuário : esta extensão exclui automaticamente os dados de um usuário assim que ele é removido de seus usuários autenticados. Você pode configurar esta extensão para excluir dados do usuário de qualquer um ou todos os seguintes: Cloud Firestore, banco de dados em tempo real ou armazenamento em nuvem. O acionamento da extensão para excluir dados é vinculado ao UUID do usuário, que é exclusivo para cada usuário autenticado

O que é Supabase?

Supabase se descreve como uma alternativa de código aberto ao Firebase. Ele foi projetado para ajudar os desenvolvedores a otimizar seu back-end em minutos. O mantra de Supabase é”Construa em um fim de semana, alcance milhões.”

Opções de exibição da página inicial Supabase

No momento em que este artigo foi escrito, os produtos Supabase disponíveis para uso incluem um banco de dados Postgres e serviço de autenticação, enquanto as funções de armazenamento e sem servidor (para lógica de back-end) ainda estão em desenvolvimento. Supabase e todas as suas ferramentas são principalmente de código aberto.

Supabase Product Selection-Database-Authentication Storage Funções

O banco de dados Postgres vem com ferramentas relacionadas ao banco de dados, incluindo escuta em tempo real às mudanças do banco de dados e uma interface para gerenciá-las. Além disso, o Supabase fornece APIs e sintaxe instantâneas que são um pouco semelhantes às do Firebase. Isso ajuda você a lidar com operações CRUD em um padrão simples para você pode se concentrar na construção, em vez de reescrever o código CRUD repetitivo.

Supabase Operações de CRUD do banco de dados Postgres

O banco de dados Postgres tem a forma de uma tabela que permite armazenar dados estruturados e relacionados como faria em qualquer planilha. Curiosamente, ao configurar um projeto, você pode importar uma planilha existente como seu banco de dados Postgres.

Firebase vs. Supabase: qual é o certo para o seu projeto?

Agora que explicamos como o Firebase e o Supabase funcionam individualmente, vamos dissecar e comparar as duas tecnologias e examinar quando você deve usar o Supabase em vez do Firebase.

Importando dados preexistentes

Com o Supabase você pode facilmente importar um CSV ou copiar e colar uma planilha para iniciar seu projeto. Isso é ótimo se você estiver migrando dados de outra plataforma para o Supabase.

Supabase-Import-CSV-Spreadsheet-Visual

O Firebase não oferece serviços integrados que permitem o upload direto de dados em massa. O melhor que você pode fazer é usar um script de nó de terceiros ou algo semelhante, que parece hackear. Além disso, você terá que converter seu CSV (ou qualquer formato) em JSON antes de fazer qualquer coisa.

Preços

Supabase é um produto de código aberto, o que significa que atualmente é gratuito. A equipe Supabase planeja cobrar pela hospedagem quando ele for lançado. Também existem planos de contribuição para indivíduos e empresas para ajudar a patrocinar o produto.

O Firebase, por outro lado, não é gratuito. O plano Spark gratuito é generoso, o que o torna ideal para projetos paralelos que não geram nenhum tráfego sério. Os aplicativos corporativos precisariam entrar no plano Blaze (pagamento conforme o uso) para ter acesso à oferta completa, incluindo extensões do Firebase e mais espaço para banco de dados e armazenamento.

Banco de dados relacional vs. banco de dados NoSQL

Supabase é um banco de dados relacional, enquanto Firebase é um banco de dados NoSQL. O banco de dados mais apropriado para seu projeto depende do tipo de aplicativo que você está construindo.

Bancos de dados relacionais são úteis quando seus dados são relacionados, rígidos e precisam ser consistentes o tempo todo. Por outro lado, você pode querer usar o NoSQL se tiver dados flexíveis com diferentes tipos de dados e precisar agir rapidamente.

Ambos os tipos de banco de dados têm seus prós e contras. Por exemplo, bancos de dados NoSQL podem ser repetitivos, mas consultar o banco de dados é rápido. É por isso que ele é usado para mecanismos de pesquisa e feeds de mídia social. Consistência e desempenho são dois grandes fatores.

Migração de dados

Ao lidar com aplicativos empresariais, a migração de dados costuma ser uma prioridade, especialmente à medida que a empresa cresce.

A migração de dados em um banco de dados NoSQL sem esquema ou um ORM como o Firebase pode ser difícil em comparação com o uso de um banco de dados relacional, que está disponível com o Supabase. É ainda mais difícil quando você já está em produção.

Nem o Firebase nem o Supabase permitem que você migre seus dados diretamente do painel; você precisará contatá-los para realizar a migração de dados.

A escolha do BaaS certo depende muito dos requisitos funcionais e do potencial de crescimento do seu projeto. Se você estiver construindo um grande projeto, deve fazer sua pesquisa para entender as restrições associadas a cada plataforma BaaS. Isso o ajudará a evitar dívidas técnicas no futuro.

A postagem Firebase vs. Supabase: qual é melhor? apareceu primeiro no LogRocket Blog .

Source link