O que é o Firebase? Todos os segredos revelados
Este artigo fornecerá uma análise detalhada do Firebase, seus prós e contras significativos, sua estrutura de preços e seus principais recursos.
O desenvolvimento de aplicativos móveis robustos e de alta qualidade é uma proposta que exige muita dedicação, mas, mais importante, uma plataforma de desenvolvimento avançada e rica em recursos.
O Firebase, do estábulo do Google, é uma dessas plataformas que conquistou os desenvolvedores em todo o mundo.
O Firebase oferece aos desenvolvedores muitas opções para criar aplicativos altamente funcionais e versáteis para a Web, Android e iOS.
Embora existam vários concorrentes no espaço de desenvolvimento de aplicativos, o Firebase está constantemente conversando com as melhores plataformas disponíveis no momento.
Continue lendo para descobrir como o Firebase funciona e obter informações detalhadas sobre seus recursos.
Contents
O que é o Firebase e como ele funciona?
O que é o Google Firebase? É uma plataforma de desenvolvimento de aplicativos móveis do Google com recursos avançados para desenvolver, manipular e aprimorar aplicativos. O Firebase é uma plataforma de back-end para a criação de aplicativos móveis e da Web.(1)
O Firebase é fundamentalmente um conjunto de ferramentas nas quais os desenvolvedores podem confiar para criar e expandir aplicativos com base na demanda.
O Firebase tem como objetivo resolver três problemas principais para os desenvolvedores:
- Crie um aplicativo rapidamente
- Lance e monitore um aplicativo com confiança
- Envolva os usuários,
Os desenvolvedores que dependem dessa plataforma têm acesso a serviços que teriam que desenvolver por conta própria, permitindo que se concentrem no fornecimento de experiências de aplicativos robustas.
Alguns dos recursos de destaque da plataforma Google Firebase incluem bancos de dados, autenticação, mensagens push, análises, armazenamento de arquivos e muito mais.
Como os serviços são hospedados na nuvem, os desenvolvedores podem realizar o dimensionamento sob demanda sem problemas. Atualmente, o Firebase está entre as principais plataformas de desenvolvimento de aplicativos nas quais os desenvolvedores de todo o mundo confiam.
Categoria | Detalhes |
---|---|
Visão geral do Firebase | Uma plataforma de desenvolvimento de aplicativos móveis do Google com recursos para desenvolvimento e aprimoramento de aplicativos. |
Principais recursos do Firebase | Inclui bancos de dados, autenticação, mensagens push, análises, armazenamento de arquivos, etc. |
Localização da base de incêndio | Sede em São Francisco, Califórnia. |
Fundadores do Firebase | Fundada por Andrew Lee e James Tamplin em 2011. |
Aplicativos populares que usam o Firebase | Alibaba, The New York Times, Todoist, Le Figaro, eBay Motors. |
Tipos de aplicativos que podem ser desenvolvidos | Aplicativos para Android, iOS e Web. |
Para que o Firebase é usado? | Os casos de uso populares do Firebase incluem MVPs, aplicativos em tempo real, aplicativos de bate-papo/mensagem, otimização de anúncios, compartilhamento de fotos e aplicativos comerciais. |
Alternativas ao Firebase | Back4app, Backendless, AWS Amplify, Parse. |
Histórico do Firebase
A história do Firebase é bastante fascinante e, como muitas startups, tem muitos altos e baixos. Ela se originou da Envolve, uma empresa iniciante criada em 2011 por Andrew Lee e James Tamplin.(2, 3, 4)
A empresa oferecia uma API para que os desenvolvedores facilitassem a integração do bate-papo on-line em sites. Os fundadores da Envolve descobriram que seu serviço de bate-papo estava sendo utilizado para retransmitir mensagens que não eram de bate-papo.
Os desenvolvedores estavam contando com a plataforma para sincronização de dados de aplicativos em tempo real. Lee e Tamplin decidiram diferenciar a arquitetura em tempo real do sistema de bate-papo, o que levou à fundação do Firebase em 2011. A plataforma de back-end como serviço do Firebase foi lançada publicamente em abril de 2012.
O primeiro produto Firebase lançado foi o Realtime Database. Trata-se de uma API para sincronização de dados de aplicativos em dispositivos Android, Web e iOS. Os desenvolvedores de aplicativos podem contar com a plataforma para criar aplicativos colaborativos em tempo real.
A empresa acumulou um financiamento inicial de mais de US$ 1 milhão em 2012 de contribuintes, incluindo Greylock Partners, New Enterprise Associates, Flybridge Capital Partners e Founder Collective. A empresa também obteve um financiamento de série A de US$ 5,6 milhões em junho de 2013 da Flybridge Capital Partners e da Union Square Ventures.(5)
O Firebase Authentication e o Firebase Hosting foram lançados em 2014 pela Firebase, estabelecendo a empresa como líder em back-end móvel como serviço (MbaaS).
O Firebase tornou-se parte do Google em outubro de 2014 e agora é a plataforma Google BaaS. Em seguida, a gigante da tecnologia adquiriu a Divshot, uma plataforma de hospedagem na Web que foi fundida com o Firebase.(6)
Avaliações do Firebase
De acordo com o G2, o Firebase tem uma pontuação de 4,5 em 5, e 266 usuários avaliaram a plataforma. As menções populares e os recursos do produto incluem desenvolvimento de aplicativos, funções de nuvem e armazenamento de dados.
O TrustRadius afirma que o Firebase tem uma pontuação de 8,5 de um total de 10, e 128 usuários avaliaram a plataforma. O sentimento é positivo para a maioria dos usuários, e apenas uma pequena minoria avaliou a plataforma de forma negativa.
De acordo com a Capterra, o Firebase tem uma pontuação de 4,6 em 5, e 764 usuários avaliaram a plataforma. O conjunto abrangente de recursos é um aspecto positivo comum mencionado, e a complexidade da solução é um aspecto negativo comum.
Vantagens do Firebase
Vantagens Número | Vantagens | Descrição |
---|---|---|
1 | Gratuito para começar | O Firebase oferece um plano Spark gratuito com limites generosos, permitindo que os desenvolvedores comecem sem nenhum custo. |
2 | Velocidade de desenvolvimento | Possibilita o desenvolvimento rápido e reduz o tempo de lançamento no mercado, pois permite que os desenvolvedores de front-end lidem com a maior parte do trabalho sem a necessidade de uma equipe de back-end separada. |
3 | Plataforma de desenvolvimento de aplicativos de ponta a ponta | Fornece um conjunto abrangente de ferramentas que cobrem todo o ciclo de desenvolvimento de aplicativos, desde a criação e o teste até a implementação e o monitoramento. |
4 | Desenvolvido pelo Google | Com o apoio do Google, oferecendo robustez e integração com os serviços do Google Cloud. |
5 | Foco no desenvolvimento de front-end | Reduz a necessidade de código de back-end, permitindo que os desenvolvedores se concentrem na criação do front-end dos aplicativos. |
6 | É sem servidor | Oferece um ambiente sem servidor, reduzindo as preocupações com dimensionamento e gerenciamento de servidores. |
7 | Recursos de aprendizado de máquina | Fornece ferramentas para implementar recursos de aprendizado de máquina em aplicativos, acessíveis a desenvolvedores de todos os níveis de habilidade. |
8 | Gera tráfego para aplicativos | Oferece suporte à indexação de aplicativos e à classificação aprimorada de aplicativos na Pesquisa Google, aumentando assim a visibilidade do aplicativo e a aquisição de usuários. |
9 | Monitoramento de erros | Inclui o Crashlytics para rastreamento e resolução de erros em tempo real, melhorando a estabilidade do aplicativo e a experiência do usuário. |
10 | Segurança e backups | Garante a segurança e a disponibilidade dos dados por meio de recursos como backups regulares e manuseio seguro dos dados. |
Quer saber mais? Veja os detalhes abaixo:
1. Livre para começar
O Firebase é gratuito para começar e permite que os usuários façam login com sua conta do Google.(7)
O plano Spark gratuito oferece muitos recursos para ajudar os desenvolvedores a começar. Com base nos requisitos crescentes, eles podem optar pelo plano Blaze.
Começar sem nenhum custo é uma boa opção que o Firebase oferece e um dos motivos pelos quais ele é tão popular. O plano Spark tem limites generosos de número de leitura e gravação no banco de dados.
A outra vantagem é que o Plano Blaze considera os limites gratuitos originais.
Por exemplo, você hospedará 20 GB de armazenamento no plano Blaze. O limite gratuito cobre 10 GB, o que significa que o Firebase cobrará apenas 10 GB pelo uso extra.
2. Velocidade de desenvolvimento
O Firebase é uma opção adequada para o desenvolvimento de aplicativos que pode ajudar os desenvolvedores a reduzir drasticamente o tempo de lançamento de aplicativos no mercado.
Normalmente, todo desenvolvedor precisa acessar o servidor e o host para criar e manter o banco de dados e o serviço de back-end.
Portanto, é necessário ter um desenvolvedor de backend e um desenvolvedor de frontend para criar aplicativos. Isso é verdade mesmo para aplicativos menores, em que o backend e o frontend precisam cooperar em diferentes estágios.
Ter desenvolvedores de front-end e back-end muitas vezes pode resultar em erros e problemas que podem causar problemas nos aplicativos, aumentando os custos e a complexidade do desenvolvimento.
No entanto, o uso do Firebase permite que os desenvolvedores de front-end gerenciem todo o trabalho e reduzam o tempo necessário para a conclusão. Isso tudo graças aos serviços prontos para uso para armazenamento de dados, autenticação, notificações, análises e muito mais.
Além disso, o Firebase oferece vários serviços prontos para uso que evitarão que um desenvolvedor crie código padrão, reinvente a roda e inicie um backend do zero.
Graças aos seus SDKs de alta qualidade, à documentação detalhada e à comunidade vibrante, os desenvolvedores de front-end não terão muitos problemas para integrar o Firebase à sua base de código.
3. Tudo em uma única plataforma (grande número de serviços)
O Firebase também oferece aos desenvolvedores uma lista abrangente de produtos para ajudá-los no processo de desenvolvimento.
Em primeiro lugar, duas opções de banco de dados são o Firestore e o banco de dados em tempo real do Firebase. Da mesma forma, o Firebase permite que você realize o armazenamento de mídia em nuvem sem esforço e possibilita o desenvolvimento de aplicativos sem servidor por meio do Cloud Functions integrado.
O Firebase abrange todo o ciclo de desenvolvimento de aplicativos, e a plataforma contém recursos para criar, liberar e monitorar aplicativos.
Além disso, como a última etapa do ciclo de desenvolvimento do aplicativo, ele fornece ferramentas para envolver e manter os usuários usando-o.
4. Desenvolvido pelo Google
O Firebase é desenvolvido pelo Google, um dos nomes mais importantes e confiáveis do mundo da tecnologia.
Desde sua aquisição, o Firebase passou por uma série de mudanças e desenvolvimentos e se tornou a plataforma confiável que é hoje. Ele aproveita o poder do Google Cloud e de muitos dos serviços do Google.
O Firebase agora faz parte do Google Cloud Platform, harmoniza-se perfeitamente com outros serviços do Google Cloud e integra-se a vários serviços de terceiros.(8, 9)
Desde a aquisição do Firebase, o Google investiu pesadamente na plataforma e forneceu um produto mais robusto.
5. Foco no desenvolvimento de front-end
Os desenvolvedores de todo o mundo preferem o Firebase, pois ele permite que eles se concentrem na criação de código de front-end para aplicativos móveis.
O Firebase reduz a necessidade de desenvolver código de back-end padronizado, atrasando a data de conclusão do desenvolvimento do aplicativo.
O Firebase torna o desenvolvimento de aplicativos conveniente e ajuda a manter os custos baixos.
O uso do Firebase também permite que os desenvolvedores e as empresas padronizem o ambiente de back-end em uma tecnologia única e fácil de aprender.
Um padrão de backend diminui o treinamento necessário para dar suporte a ele e permite que os desenvolvedores focados em frontend realizem a maioria das atividades.
6. É sem servidor
Aumentar e diminuir o tamanho dos servidores não é uma tarefa fácil! Em particular, o dimensionamento de um cluster de banco de dados é desafiador, e a otimização do desempenho para cargas de trabalho enormes exige engenheiros experientes.
O Firebase resolve esse problema e oferece um ambiente totalmente sem servidor.
O Firebase vem com uma arquitetura sem servidor que exige que os usuários paguem com base em solicitações, e não há necessidade de gerenciar ou se preocupar com a infraestrutura do servidor. É diferente de um servidor convencional, que deve estar sempre funcionando.
Os usuários do Firebase são cobrados somente quando o servidor está sendo utilizado devido à sua natureza sem servidor. Como resultado, há menos preocupações relacionadas ao dimensionamento devido à maior eficiência.
Os desenvolvedores têm liberdade ao adotar uma abordagem prática para lidar com DevOps, configuração, infraestrutura e planejamento de capacidade.
7. Aprendizado de máquina
O aprendizado de máquina está prestes a remodelar o setor de tecnologia da informação. De inúmeras maneiras, ele já começou.
De acordo com a Gartner, 30% das empresas usarão o ML em uma parte de seus processos.(10)
O Firebase também é vantajoso, pois permite que os desenvolvedores confiem no aprendizado de máquina.
O ML pode ser utilizado por desenvolvedores de iOS e Android, independentemente de seu nível de experiência.
O Firebase tem um kit de ML com APIs prontamente disponíveis para diferentes recursos da plataforma móvel, como identificação de texto, detecção de face, rotulagem de imagens, leitura de código de barras e muito mais.
Os desenvolvedores podem optar por APIs na nuvem ou no dispositivo com base nos requisitos de desenvolvimento de aplicativos.
8. Gerar tráfego
O Firebase facilita a indexação de aplicativos para permitir que os usuários reengajem os usuários da Pesquisa Google fornecendo links de aplicativos na Pesquisa.(11)
A classificação do aplicativo também pode ser aprimorada na Pesquisa uma vez, indexando um aplicativo, o que ajuda seu aplicativo a ganhar exposição a novos usuários que podem instalá-lo.
Os desenvolvedores podem contar com o Android Instant App, que pode ser utilizado para acessar o conteúdo do aplicativo.
9. Monitorar erros
O recurso Crashlytics do Firebase é uma ferramenta fantástica para encontrar e corrigir problemas rapidamente. O Firebase pode monitorar erros não fatais e fatais, e os relatórios são gerados com base em como os erros afetam a experiência do usuário.(12)
10. Backups
O Firebase garante a segurança e a disponibilidade ideais dos dados com a ajuda de backups regulares.(13)
Os aplicativos são protegidos contra a perda de dados por meio do recurso de backup automático dessa plataforma.
Os usuários do plano Blaze podem configurar facilmente o banco de dados em tempo real para fazer backups automáticos. Ao clicar na guia Backups do Firebase Database, é possível acessar as configurações de backup automático.
Limitações do Firebase
Número de limitação | Limitação | Descrição |
---|---|---|
1 | Não é de código aberto | O Firebase não é uma plataforma de código aberto, o que limita as possibilidades de personalização e modificação para os desenvolvedores. |
2 | Bloqueio do fornecedor | O uso do Firebase pode levar à dependência dessa plataforma específica, o que dificulta a mudança para outros serviços sem alterações significativas. |
3 | Restrições geográficas | Os serviços do Firebase, que fazem parte do Google, não podem ser acessados em países onde os serviços do Google são bloqueados, como a China. |
4 | Somente bancos de dados NoSQL | O Firebase suporta apenas bancos de dados NoSQL, o que pode não ser adequado para todos os tipos de aplicativos, especialmente aqueles que exigem consultas e transações complexas. |
5 | Consultas lentas | Alguns serviços do Firebase, como o Firestore, podem ter limitações no desempenho da consulta, especialmente para aplicativos de grande escala. |
6 | Complexidade de preços | O preço do Firebase pode ser imprevisível e difícil de prever, especialmente para aplicativos com padrões de uso variáveis. |
7 | Limitado ao Google Cloud | O Firebase é executado exclusivamente no Google Cloud, não oferecendo flexibilidade para hospedagem em outras plataformas de nuvem. |
8 | Falta de servidores dedicados | O Firebase não oferece opções de servidor dedicado ou contratos empresariais, o que pode limitar o desempenho e a personalização de aplicativos maiores. |
9 | Sem APIs GraphQL | O Firebase não oferece suporte nativo às APIs GraphQL; os desenvolvedores precisam implementar soluções alternativas para usar o GraphQL. |
10 | Complexidade e curva de aprendizado | O conjunto abrangente de recursos do Firebase pode introduzir uma curva de aprendizado acentuada, especialmente para os desenvolvedores que são novos no desenvolvimento de aplicativos baseados em nuvem. Além disso, o gerenciamento e a otimização dos serviços do Firebase para controlar os custos e o desempenho podem ser complexos. |
Vamos explorar as limitações do Firebase com mais detalhes a seguir:
1. Não é de código aberto
O Firebase não é uma opção de código aberto para o desenvolvimento de aplicativos móveis, o que o torna uma opção abaixo do ideal para muitos desenvolvedores.
Os usuários não podem modificar o código-fonte do Firebase porque ele é de código fechado. Devido a essa limitação, muitos desenvolvedores que gostam dos recursos do Firebase acabam usando outras plataformas.
Embora a plataforma não seja de código aberto, é importante enfatizar que muitas bibliotecas e SDKs estão disponíveis no GitHub.(14)
Essa pode ser a limitação mais significativa do Firebase e impede que a comunidade aprimore o produto, aumente os níveis de flexibilidade e forneça opções de auto-hospedagem para os desenvolvedores que não podem pagar o preço do Firebase.
Consulte o artigo Firebase Open-Source Alternatives para obter opções que não funcionam com tecnologias proprietárias.
2. Fechamento do fornecedor
Outro grande impedimento para o uso do Firebase é o fato de que ele está preso a um fornecedor.
Esse é um problema significativo que impede alguns desenvolvedores de optarem pela plataforma. O fato de não ter acesso ao código-fonte pode ser bastante complicado para alguns desenvolvedores.
Em particular, para aplicativos grandes, migrar para outros fornecedores não é uma tarefa fácil e, para fazer essa mudança, todo o back-end precisaria ser reconstruído do zero.
3. O Firebase não funciona em muitos países
O Firebase é um subdomínio do Google, e o site oficial é https://firebase.google.com. Ele está bloqueado em muitos países.
O Google está bloqueado e não pode ser acessado em países como a China e outros serviços do Google porque a China obstruiu os URIs com *.google.com e *.googleapis.com.
Para obter uma lista completa de países, consulte o Relatório de Transparência.(15)
Leia o artigo Alternativas ao Firebase na China para descobrir a melhor maneira de hospedar um aplicativo na China.
4. Funciona somente com bancos de dados NoSQL
As duas opções de banco de dados do Firebase, Firestore e Firebase Realtime Database, oferecem uma estrutura NoSQL, e não há opção de usar um banco de dados relacional.(16, 17)
- Consultas complexas
Outro desafio que os usuários enfrentam com o banco de dados NoSQL é a implementação de consultas complexas.
Embora o Firebase tenha feito melhorias significativas no Cloud Firestore em comparação com o RTDB, a execução de consultas complexas ainda é um desafio para usuários específicos.
O exemplo acima, extraído do StackOverflow, delineia os desafios enfrentados por um usuário que está migrando do Parse para o Firebase.(18)
Exemplos de problemas do usuário estão relacionados à filtragem, combinação de filtros e combinação de várias consultas.
Embora exista uma solução para essa situação e um usuário possa criar complexos com o Firebase, a implementação pode não ser simples para um iniciante no uso da plataforma.
- Transações
Um tópico interessante no StackOverflow discute como o Firebase Realtime Database lida com as propriedades ACID.(19)
Embora seja compatível com transações, os desenvolvedores terão de executar seu código, ao contrário de um banco de dados relacional tradicional, o que torna seus sistemas mais complicados.(20)
- A migração de dados não é tão fácil quanto usar um banco de dados SQL
De acordo com o artigo 5 Reasons Not to Use Firebase, com o Firebase, o usuário não pode lidar rapidamente com a migração de dados semelhante a um banco de dados SQL simples.
O Firebase usa JSON e praticamente não há recursos SQL, portanto, a migração do banco de dados não será tão fácil.
5. Consultas lentas
Nem todos os bancos de dados são ideais para todos os casos de uso, e o Cloud Firestore não é exceção.
Embora seja uma solução fantástica para dimensionar seus aplicativos e oferecer suporte a consultas off-line e atualizações em tempo real, ela também tem limitações.(21).
Alguns exemplos são:
- Frequência de gravação limitada a 1 por segundo;
- Não há consultas de agregação nativas;
- Tamanho máximo da solicitação de API: 10 MiB;
- O limite de tamanho do documento é de 1 MiB;
- Máximo de conexões simultâneas: 1 milhão;
- Flexibilidade de consulta;
- As consultas diminuem o desempenho.
Há dois ótimos artigos a serem lidos para saber mais sobre as limitações do Firestore. A primeira excelente postagem é sobre As 10 principais coisas que você deve saber sobre o Firestore ao escolher um banco de dados para seu aplicativo, e a segunda é Por que minha consulta ao Cloud Firestore está lenta?
6. Nem todos os serviços do Firebase são gratuitos para iniciar
Embora a maioria dos serviços esteja disponível no Plano Spark, essa regra tem algumas exceções. Exemplos são o Cloud Functions e o aprendizado de máquina.(7)
O Cloud Functions está disponível apenas no plano Blaze, e um usuário não pode experimentar o serviço no plano Spark.
É importante enfatizar uma cota gratuita para o Cloud Functions, mas haverá cobranças no Plano Blaze quando o usuário exceder o limite gratuito.
As APIs do Cloud Vision no recurso Aprendizado de máquina são o segundo exemplo de um serviço não disponível no Plano Spark. Esse serviço está disponível apenas para usuários do Plano Blaze e cobra US$ 1,5/k de APIs.
7. É caro e o preço é difícil de prever
O Firebase é uma plataforma de desenvolvimento de aplicativos móveis repleta de recursos e é cara para alguns. Ele oferece um plano gratuito, mas com algumas restrições.
Esse é o motivo pelo qual muitos desenvolvedores acabam optando por aplicativos auto-hospedados com opções como Digital Ocean, AWS ou Google Cloud.
O Firebase agrega valor a um provedor de IaaS puro, mas a conveniência tem um preço. De modo geral, hospedar um aplicativo por conta própria será mais barato do que usar o Firebase.(22)
Portanto, antes de optar pelo Firebase, certifique-se de comparar corretamente os custos iniciais de configuração de um cluster em um provedor de IaaS e os custos contínuos (servidores + custos adicionais de engenharia) de manutenção dos servidores com a execução do aplicativo diretamente no Firebase.
O outro aspecto que torna o Firebase caro é o fato de ser uma tecnologia proprietária, que exige um retorno sobre o investimento em engenharia. Por outro lado, as tecnologias de código aberto podem usar o poder do desenvolvimento baseado na comunidade e fornecer soluções mais econômicas.
O Firebase fornece serviços em um modelo de preços baseado no uso, e é difícil limitar os preços. A plataforma não tem planos de preços fixos, e manter o controle do uso de recursos pode ser um incômodo.
Estimar os custos do Firebase pode ser difícil para alguns usuários, especialmente quando os requisitos de escalabilidade não podem ser previstos. Os preços são complicados, e o Firebase tem preços específicos para cada recurso.
Manter os custos abaixo de um limite pode ser bastante desafiador com a plataforma, e não há uma maneira fácil de limitar ou colocar limites rígidos na conta.
Dito isso, há maneiras de definir orçamentos, alertas de uso e até mesmo limitar explicitamente o número de solicitações, graças à integração com o Google Cloud. No entanto, elas exigem que você vá além do Firebase e são um pouco complexas de configurar.
Para gerenciar melhor seus gastos, você deve usar os recursos do Firebase de forma otimizada. Os exemplos incluem a otimização do código da função de nuvem para tempos de execução mais rápidos e a decisão correta entre RTDB e Firestore. Por exemplo, use o RTDB para lidar com dados pequenos, mas de alta taxa de transferência, e o Firestore para conjuntos de dados maiores ou quando for necessário fazer consultas complexas.
No passado, o Firebase costumava oferecer o plano Flame. Esse era um plano de preço fixo, US$ 25/mês, que foi descontinuado em janeiro de 2020.(23, 24)
A mudança na estrutura de preços causou inconvenientes para alguns usuários, e a mudança para o Pay-as-you-go aumentou as cobranças em algumas situações. Para saber mais sobre esse tópico, leia o artigo Os custos do Firebase aumentaram em 7.000%!
Observe que uma estrutura baseada no uso não é necessariamente ruim! A maioria dos provedores de IaaS, como AWS ou Azure, também usa esse princípio.
Como ponto positivo, ele cobrará exatamente os recursos que você consome e fornecerá maior granularidade.
Certifique-se de entender como funciona a cobrança antes de se comprometer com esse modelo e monitore seus custos regularmente para evitar cobranças inesperadas no final do mês.
8. É executado somente no Google Cloud
O Firebase agora faz parte do Google, e sua infraestrutura é totalmente executada no Google Cloud.(25)
Não há opção para executar o Firebase em outros provedores de nuvem, como AWS, Azure ou Digital Ocean.
O Firebase limita o nível de flexibilidade em termos de opções de hospedagem. O Firebase não fornece acesso em nível de servidor, e podem surgir problemas se for necessário personalizar as configurações do servidor.
9. Falta de servidores dedicados e contratos empresariais
Os usuários do Firebase não têm a opção de servidores dedicados ou contratos empresariais.(23)
O fato de não fornecer servidores dedicados é uma limitação significativa. A única maneira de usar o Firebase é em uma estrutura sem servidor que oferece menos flexibilidade do que uma estrutura de cluster totalmente dedicada.
Além disso, o compartilhamento de recursos pode não proporcionar um desempenho ideal devido a vizinhos barulhentos.
Um ambiente sem servidor é uma excelente opção para aplicativos cuja carga de trabalho flutua ao longo do tempo – por exemplo, picos e vales durante o dia ou a semana.
Imagine um aplicativo de reserva de restaurante; um ambiente sem servidor funcionará bem para esse aplicativo porque garantirá que todos os recursos do servidor sejam alocados automaticamente durante os períodos de pico na sexta-feira/sábado à noite.
Por outro lado, as cargas de trabalho de vários aplicativos não variam muito, mas podem exigir configurações de segurança personalizadas ou algum acesso no nível do servidor. Uma estrutura sem servidor não será adequada para esse cenário, e a hospedagem dedicada é uma opção mais adequada.
O Firebase não oferece planos de preços, contratos ou assistência para empresas, o que é um problema significativo para muitos usuários em potencial. No entanto, o plano Blaze pode ser considerado uma opção adequada para desenvolvedores com necessidades de nível empresarial.
10. Não fornece APIs GraphQL
O Firebase não fornece APIs GraphQL como parte da configuração padrão. Embora existam soluções alternativas para a implementação do GraphQL com o Firebase, o REST ainda é a opção padrão da plataforma.
Para saber mais sobre o GraphQL e o Firebase, consulte esta pergunta no StackOverflow.(26)
Preços do Firebase
O Firebase oferece um plano gratuito e baseado no uso para seus usuários. No entanto, os usuários não têm um plano fixo e com preço uniforme para escolher e começar.(7)
Plano | Descrição |
Spark (Plano gratuito) | O plano Spark do Firebase é gratuito, com 10 GB de hospedagem, SSL, vários sites, um domínio personalizado e várias outras ofertas. Ele tem recursos valiosos, como Firebase ML, banco de dados em tempo real, Cloud Firestore e laboratório de testes. Essas são algumas das opções que podem ser aproveitadas com o plano Firebase Spark. |
Blaze (Pague conforme o uso) | O plano Blaze do Firebase está disponível em um modelo de preço flexível e pago conforme o uso. Ele vem com todos os recursos do Spark Plan, além de alguns recursos extras para melhorar a experiência de desenvolvimento. Com esse plano, os usuários têm de pagar US$ 0,026/GB para hospedagem e o mesmo para cada GB de armazenamento. Muitas das restrições do Spark Plan são eliminadas com o plano Firebase Blaze. A calculadora do plano Blaze disponível no site do Firebase pode ser uma ferramenta útil para calcular os custos estimados. |
O plano Free tem algumas restrições e, por exemplo, não dá aos desenvolvedores acesso ao Cloud Functions.
O Blaze é o plano de preços pago conforme o uso, com preços segmentados para diferentes conjuntos de recursos, ou seja, Cloud Firestore, Cloud Functions, Autenticação, Hospedagem, Firebase ML, Banco de dados em tempo real e Armazenamento.
- Serviços sempre gratuitos do Firebase
O Firebase é generoso com sua variedade de serviços sempre gratuitos que ajudam muitos desenvolvedores a iniciar seus projetos de desenvolvimento de aplicativos.
Esses serviços podem ser gratuitos, independentemente do plano pelo qual se opte. Veja os diferentes serviços oferecidos na plataforma como “sempre gratuitos”.
- Entrega de aplicativos para testadores.
- Indexação de aplicativos para permitir que os mecanismos de pesquisa indexem aplicativos
- Diferentes implementações de versões de aplicativos específicas do usuário para testes A/B
- Previsão e relatórios de desempenho do aplicativo
- Interação ativa com o cliente do aplicativo por meio de mensagens integradas
- Notificações automáticas e mensagens para usuários em aplicativos Android, iOS e Web com mensagens do Firebase Cloud.
- Monitoramento do desempenho do aplicativo Firebase
- Detecção de falhas de aplicativos com o Firebase Crashlytics
- Redirecionamento de usuários em diferentes plataformas usando links dinâmicos
- Personalizações de funções de aplicativos remotos
- Os componentes do Firebase Machine Learning permitem que as previsões informem sobre o retorno dos usuários do aplicativo.
- Serviços pagos do Firebase
A guia Usage (Uso) do console do Firebase pode ser acessada para verificar o status de pagamento do plano e os dados relacionados ao uso de diferentes serviços do Firebase.
- Guia Armazenamento –A guia Armazenamento exibe a quantidade total de dados em um banco de dados, além dos dados armazenados em outras ofertas do Firebase.
- Guia Conexões –A guia Conexões contém informações sobre o número total de conexões em tempo real, incluindo WebSockets.
- Guia Load (Carga) –Essa guia contém exibições gráficas de cargas de aplicativos e apresenta esses dados aos usuários em um determinado período de tempo.
- Guia Downloads –Contém informações sobre o volume total de dados baixados de um banco de dados.
Para obter mais informações sobre os preços do Firebase, leia Google Firebase Pricing for Dummies.
Privacidade do Firebase
A política de privacidade do Firebase é compatível com a GDRP, a Regulamentação Geral de Proteção de Dados da União Europeia, e com a CCPA, a Lei de Privacidade do Consumidor da Califórnia. Além disso, o Firebase está em conformidade com várias certificações ISO e SOC, incluindo 27001, 27017, 27018, SOC1, SOC2 e SOC3.
O Firebase alimenta o Google com dados de serviço para serviços que não são do Firebase. Essa opção é selecionada por padrão; os usuários devem desmarcar a caixa para evitá-la.
Recursos do Firebase
O Firebase tem uma ampla gama de recursos avançados para as necessidades dos desenvolvedores.(27)
Os recursos são categorizados em Build, Release & Monitor e Engage. O Firebase como backend é utilizado em diferentes estágios do desenvolvimento de aplicativos móveis.
Recurso do Firebase | Categoria | Descrição |
---|---|---|
Firestore | Construir | Um banco de dados NoSQL baseado em nuvem para armazenamento e sincronização de dados. |
Banco de dados em tempo real | Construir | Banco de dados hospedado na nuvem que permite a sincronização de dados em tempo real entre plataformas. |
Configuração remota | Criar, liberar, envolver | Modifique o comportamento e a aparência do aplicativo sem implantar novas versões. |
Extensões do Firebase | Construir | Conjunto de soluções pré-empacotadas para ampliar a funcionalidade do Firebase. |
Verificação do aplicativo | Construir | Ajuda a proteger seus recursos de back-end contra abusos, como fraude de faturamento ou phishing. |
Funções de nuvem | Construir | Estrutura sem servidor para executar código de back-end em resposta a eventos. |
Autenticação | Criar, envolver | Fornece autenticação e gerenciamento de usuários com vários métodos. |
Mensagens na nuvem | Criar, envolver | Serviço para entrega de mensagens entre plataformas de forma confiável. |
Hospedagem | Construir | Oferece hospedagem na Web com implementação rápida e entrega segura. |
Armazenamento em nuvem | Construir | Solução de armazenamento de arquivos em nuvem com controles robustos de acesso a dados. |
Firebase ML | Construir | Integra o aprendizado de máquina em seus aplicativos com o mínimo de conhecimento especializado. |
Crashlytics | Liberar, envolver | Ferramenta de relatório de falhas em tempo real que ajuda a rastrear, priorizar e corrigir problemas de estabilidade. |
Google Analytics | Liberação | Fornece insights detalhados sobre o uso do aplicativo e o envolvimento do usuário. |
Monitoramento de desempenho | Liberação | Monitora o desempenho do aplicativo para identificar e resolver problemas rapidamente. |
Laboratório de testes | Liberação | Teste de aplicativos baseado em nuvem em dispositivos reais e virtuais. |
Distribuição de aplicativos | Liberação | Gerencia a distribuição de versões beta do seu aplicativo. |
Testes A/B | Engajamento | Execute experimentos para aprimorar o aplicativo com experiências de usuário controladas. |
Mensagens na nuvem | Engajamento | Envolve os usuários com mensagens direcionadas e contextualmente relevantes. |
Mensagens no aplicativo | Engajamento | Envia mensagens para envolver ativamente os usuários enquanto eles estão usando o aplicativo. |
Vamos explorar em mais detalhes cada um dos recursos.
Bancos de dados – Firestore e o banco de dados em tempo real
Os dois bancos de dados da plataforma Firebase são o Cloud Firestore e o Realtime Database, ambos ferramentas valiosas para os requisitos de desenvolvimento de aplicativos modernos.
O Cloud Firestore, também conhecido como Google Firestore, é um componente da plataforma de desenvolvimento de aplicativos móveis Firebase.
Ele é fundamentalmente um banco de dados NoSQL baseado em nuvem para armazenamento e sincronização de dados. Os usuários do Firebase podem acessar o Firestore a partir de aplicativos móveis ou da Web por meio de SDKs nativos.
O Cloud Firestore pode ser utilizado com várias linguagens de programação, como Unity, C++, Java, Node.js SDKs, APIs REST e suporte a RPC. O banco de dados Firestore do Firebase é voltado para oferecer desempenho ideal, confiabilidade, dimensionamento automático e usabilidade de benchmark.
Para saber mais sobre o Firestore, leia o artigo O que é o Google Firestore.(28)
O Firebase Realtime Database é um banco de dados hospedado na nuvem. Ele facilita o armazenamento de dados com base em JSON e realiza a sincronização de dados em tempo real com clientes conectados.
Instâncias únicas do banco de dados em tempo real funcionam como clientes durante os processos de desenvolvimento de aplicativos entre plataformas usando SDKs para iOS, JavaScript e Android.
Ele permite que os aplicativos recebam as atualizações e os dados mais recentes. Os aplicativos off-line podem permanecer responsivos porque o SDK de banco de dados realiza a persistência de dados no disco. Ele ajuda a sincronizar os dispositivos para apresentar os estados do servidor após a restauração da conectividade.(29)
Para saber mais sobre as diferenças entre o Cloud Firestore e o Realtime Database, leia o artigo Firestore vs. Realtime Database.
- Configuração remota
O Remote Config é uma solução em nuvem que permite aos usuários modificar o comportamento e a aparência dos aplicativos sem atualizá-los.
Os usuários também podem criar valores padrão no aplicativo para manutenção do comportamento e da aparência do aplicativo.(41)
- Extensões do Firebase
As Firebase Extensions são soluções pré-empacotadas que ajudam a simplificar o processo de desenvolvimento, automatizando as tarefas cotidianas.
Basicamente, eles são conjuntos de códigos configuráveis e implementáveis que se integram perfeitamente ao Firebase e a outros serviços do Google Cloud.
Os desenvolvedores podem usar essas extensões para várias funcionalidades, como redimensionamento de imagens, acionamento de e-mails ou sincronização com serviços de terceiros. Elas reduzem a necessidade de escrever código padrão, acelerando assim o desenvolvimento do projeto.
Ao simplificar operações complexas, o Firebase Extensions permite que os desenvolvedores se concentrem mais na criação de recursos exclusivos de aplicativos, aumentando a eficiência e a produtividade no ciclo de vida do desenvolvimento de aplicativos.
- Verificação do aplicativo Firebase
O Firebase App Check é um recurso de segurança projetado para proteger os recursos de back-end do Firebase contra tráfego fraudulento e prejudicial.
Ele verifica se as solicitações recebidas pelos serviços do Firebase são de fato provenientes do seu aplicativo autêntico e confiável.
O App Check consegue isso usando atestados de aplicativos, tokens digitais que confirmam a legitimidade do aplicativo que está fazendo a solicitação.
Ao integrar o App Check, os desenvolvedores podem impedir efetivamente o acesso não autorizado e o abuso, como fraude de faturamento ou recuperação não autorizada de dados, aumentando a segurança geral da implementação do Firebase.
- Funções de nuvem
O Firebase Cloud Functions refere-se a uma estrutura sem servidor que permite que os desenvolvedores executem código de back-end para responder a eventos acionados por HTTPS e recursos do Firebase.
O Google Cloud armazena código TypeScript ou JavaScript e pode ser executado em um ambiente gerenciado.(31)
Ele reduz a necessidade de dimensionamento e gerenciamento de servidores. Para obter mais informações sobre o Cloud Functions, leia o artigo O que é o Firebase Cloud Functions?
- Autenticação
A autenticação é um recurso do Firebase que oferece bibliotecas de interface do usuário prontas para uso, backends e SDKs convenientes para autenticação de aplicativos de usuários.
A autenticação é suportada por meio de números de telefone, senhas e provedores como Google, Twitter e Facebook.(32)
A autenticação permite a integração com diferentes serviços do Firebase e utiliza o OpenID Connect e o OAuth 2.0, além de permitir a integração de back-end personalizada.
Para obter mais informações sobre a autenticação do Firebase, leia o artigo O que é a autenticação do Firebase?
- Mensagens na nuvem
O Firebase Cloud Messaging ou FCM refere-se a um serviço de mensagens entre plataformas para mensagens gratuitas. Esse recurso permite que os proprietários de aplicativos notifiquem os aplicativos clientes se e quando os dados ou e-mails devem ser sincronizados.(33)
O FCM permite que os proprietários de aplicativos enviem notificações para aumentar a retenção e envolver os usuários. O Cloud Messaging facilita as transferências de carga útil de até 4kb para casos de mensagens instantâneas.
Para obter mais informações sobre o FCM, leia o artigo O que é o Firebase Cloud Messaging?
- Hospedagem
O Firebase tem vários recursos de hospedagem escalonáveis e ágeis para microsserviços, aplicativos da Web e vários outros tipos de conteúdo.
O conteúdo pode ser hospedado em diferentes categorias, e os usuários podem aproveitar a proteção SSL e as reversões com um único clique.(34)
Para obter mais informações sobre a hospedagem web do Firebase, leia o artigo O que é a hospedagem do Firebase?
- Armazenamento em nuvem
O recurso Cloud Storage do Firebase é um serviço para armazenar recursos de desenvolvimento de aplicativos, inclusive objetos.
Os usuários obtêm acesso à segurança de upload e download no nível do Google com esse recurso, que é adequado para armazenar arquivos de mídia e conteúdo do usuário.(35)
Para saber mais sobre o Firebase Storage, leia o artigo Firebase Storage.
- Aprendizado de máquina
O Firebase ML é um SDK móvel que aproveita o poder do aprendizado de máquina do Google e o implementa em aplicativos iOS e Android por meio de um pacote conveniente.(30)
A utilização da funcionalidade de aprendizado de máquina com o Firebase ML é adequada para qualquer pessoa, independentemente do nível de experiência.
Não é necessário ter conhecimento profundo de otimização de modelos ou redes neurais. Os desenvolvedores experientes podem usar as APIs do Firebase ML Kit para utilizar aplicativos móveis, como os modelos TensorFlow Lite.
Para obter mais informações sobre o Firebase ML, leia o artigo O que é o aprendizado de máquina do Firebase?
- Crashlytics
O Crashlytics é o relatório de falhas em tempo real do Firebase que permite aos desenvolvedores rastrear, priorizar e resolver problemas. O recurso Crashlytics pode ser usado para evitar possíveis problemas de estabilidade.(36)
Para saber mais sobre essa ferramenta, leia o artigo O que é o Crashlytics.
- Google Analytics
O Google Analytics é uma ferramenta de análise avançada que oferece insights detalhados sobre o uso do aplicativo e o envolvimento do usuário.
Integrado perfeitamente com o Firebase, ele permite que os desenvolvedores acompanhem o comportamento do usuário, meçam o desempenho do aplicativo e analisem os dados para tomar decisões informadas.
Essa integração permite capturar dados avançados e baseados em eventos dos seus aplicativos Firebase, oferecendo uma visão abrangente de como os usuários interagem com o seu aplicativo.
Ele ajuda a entender os dados demográficos dos usuários, os padrões de uso do aplicativo e outros indicadores-chave de desempenho.
Ao aproveitar esse poder combinado do Firebase e do Google Analytics, os desenvolvedores podem adaptar seus aplicativos para atender melhor às necessidades do usuário, otimizar a experiência do usuário e conduzir estratégias de marketing eficazes, tudo por meio de uma interface analítica unificada.
- Monitoramento de desempenho
O Firebase Performance Monitoring é um serviço que ajuda você a obter informações sobre as características de desempenho dos seus aplicativos iOS, Android e Web.(38)
Você usa o SDK de monitoramento de desempenho para coletar dados de desempenho do seu aplicativo. Isso ajuda a entender onde e quando o desempenho do seu aplicativo pode ser melhorado, para que você possa usar essas informações para corrigir problemas de desempenho.
- Laboratório de testes
O Firebase Test Lab é uma infraestrutura de nuvem para testes de aplicativos. Ele permite que os usuários testem seus aplicativos iOS e Android com uma operação em vários dispositivos e configurações.(39)
Os usuários também podem ver os resultados no console do Firebase, incluindo capturas de tela, logs e vídeos.
- Distribuição de aplicativos
O Firebase App Distribution é um recurso que oferece uma visão abrangente do programa de testes beta de um usuário nas plataformas Android e iOS. Os usuários podem receber feedback útil antes da fase de produção de uma nova versão.(40)
Um usuário pode enviar versões iniciais de aplicativos usando servidores de CI ou um console. As instalações de aplicativos também se tornam mais acessíveis para os testadores.
- Testes A/B
O teste A/B é um recurso do Firebase que ajuda os desenvolvedores a oferecer melhores experiências de usuário de aplicativos, aprimorando o gerenciamento, o dimensionamento e a análise de aplicativos.
Os usuários podem testar rapidamente as modificações feitas em UIs, recursos e campanhas antes do lançamento do aplicativo.(43)
- Mensagens no aplicativo
O In-App Messaging é um recurso do Firebase para envolver os usuários ativos do aplicativo usando mensagens contextuais. Os usuários podem executar ações específicas no aplicativo para acessar diferentes recursos ou desbloquear determinadas ofertas.(45)
Alternativas ao Firebase
Embora o Firebase seja uma excelente plataforma para o desenvolvimento de aplicativos, muitas alternativas são igualmente notáveis. Se você estiver procurando uma alternativa ao Firebase em 2024, aqui estão as opções que recomendamos.
Alternativa | Categoria | Principais recursos | Preços |
---|---|---|---|
Back4App | Código aberto, Low-code | Modelo de dados, APIs GraphQL/REST, funções sem servidor | Gratuito, sem servidor a partir de US$ 25/mês |
Parse | Estrutura de código aberto | Painel de controle fácil de usar, APIs, adaptadores de armazenamento de objetos | Gratuito para download |
AWS Amplify | Desenvolvimento full-stack | Armazenamento de dados, autenticação, análise, APIs | Nível gratuito, pago conforme o uso |
Backendless | Desenvolvimento visual de aplicativos | Criador de aplicativos, APIs, bancos de dados em tempo real | Nível gratuito, a partir de US$ 15/mês |
Kuzzle | IoT e back-end | Suíte IoT, back-end, PaaS | Gratuito, planos de suporte a partir de € 500/mês |
Supabase | Código aberto | Banco de dados, painel de controle, autenticação | Nível gratuito, a partir de US$ 25/mês |
Appwrite | Servidor de código aberto | Banco de dados, armazenamento, geo, funções | Inicial gratuito, a partir de US$ 15/membro/mês |
Ably | Infraestrutura em tempo real | Canais PubSub, ambientes multiusuário | Nível gratuito, pago conforme o uso |
Hasura | Mecanismo GraphQL | API GraphQL, armazenamento em cache, segurança | Nível gratuito, Profissional a partir de US$ 1,5/hora |
Nhost | Backend sem servidor | Banco de dados em tempo real, API GraphQL | Nível gratuito, a partir de US$ 25/mês |
Conclusão
Este artigo explicou as vantagens, as desvantagens, a estrutura de preços, os principais recursos e as melhores plataformas alternativas do Firebase.
O Firebase é a plataforma de desenvolvimento de aplicativos móveis do Google. Suas vantagens incluem um ambiente de desenvolvimento de ponta a ponta, um tempo de comercialização mais rápido para criar aplicativos e uma infraestrutura dimensionável.
Embora seja um produto fantástico, o Firebase tem suas desvantagens. É uma plataforma de código fechado, tem dependência de fornecedores e fornece apenas bancos de dados NoSQL.
Em termos de preços, o Firebase opera com dois planos diferentes. O primeiro é o Spark, que oferece uma camada gratuita generosa e engloba a maioria dos recursos do Firebase.
O plano pago é chamado Blaze e funciona em um modelo baseado no uso. Ele cobra o aplicativo com base na carga de trabalho utilizada.
O Firebase divide seus recursos em três categorias principais: Construção, Lançamento e Monitoramento e Engajamento. Todos eles são empregados em vários estágios do ciclo de desenvolvimento de um aplicativo.
O Firebase tem muitos concorrentes, incluindo Back4app, Backendless, AWS Amplify e Parse.
Esperamos que este artigo o ajude a entender melhor o Firebase e a decidir se deve usar esse serviço.