Qual é a relação entre o Firebase e o Google Cloud?

Doug Stevenson Blocked Unblock Seguir Seguindo 13 de janeiro

Se você é um desenvolvedor de aplicativos para dispositivos móveis, imagino que você tenha uma boa chance de saber algo sobre o Firebase, a plataforma de desenvolvimento de aplicativos para dispositivos móveis do Google. Ou, se você for um desenvolvedor de sistemas corporativos, poderá saber algo sobre o Google Cloud Platform (GCP), um amplo conjunto de produtos e serviços que hospedam seus dados e códigos em escala planetária e muito mais. Embora ambas as plataformas possam ser usadas sem o conhecimento do outro, há algumas maneiras pelas quais elas se sobrepõem. O conhecimento desse relacionamento é importante em duas circunstâncias:

  1. Você é um desenvolvedor de aplicativos do Firebase e precisa expandir sua infraestrutura de back-end além do que o Firebase fornece por padrão.
  2. Você é um desenvolvedor do Google Cloud e deseja criar um aplicativo para dispositivos móveis (ou web) sobre sua infraestrutura existente no GCP.

Mesmo que essas situações não (ainda!) Se apliquem a você, entender como as ferramentas e os serviços estão relacionados deve ajudar a reduzir o atrito que você pode encontrar com algumas tarefas, especialmente com relação ao seu aplicativo do Firebase.

Então, o que você precisa saber? Vamos começar com o detalhe mais importante.

Um projeto do Firebase também é um projeto do GCP

Quando você cria um projeto do Firebase, esse fato fica basicamente oculto. Para começar a usar o Firebase, simplesmente não é necessário saber nada sobre o GCP. O caminho de integração é otimizado para levar você a uma solução de trabalho com o mínimo de esforço. Eu sei que muitos desenvolvedores apreciam isso!

Aqui está uma captura de tela do Firebase console depois que você criou um novo projeto:

Você pode ver uma lista rolável de produtos à esquerda, organizada por categorias de nível superior que se expandem e reduzem. No meio, você tem alguns botões que ajudam você a começar a adicionar seu aplicativo ao projeto. Está bem claro o que se espera que você faça em seguida. Posteriormente, depois de adicionar um aplicativo e começar a usar alguns dos produtos, a área principal é alterada para um painel que mostra algumas estatísticas dos produtos que você usa.

Por outro lado, aqui está uma captura de tela do mesmo projeto recém-criado no console do Google Cloud :

A aparência é quase completamente diferente. Aqui, eu também abri o menu de hambúrguer no canto superior esquerdo, e está pairando sobre o conteúdo principal. Esse menu também rola, e há muito mais produtos e opções aqui do que você vê no Firebase console.

Você pode pensar em um projeto do GCP como um contêiner virtual para dados, código, configuração e serviços, independentemente de como ele foi criado . Ao criar um projeto do Firebase , você está criando um projeto do Google Cloud nos bastidores. Isso significa que você pode visualizar e gerenciar muitos aspectos do seu projeto do Firebase no console da nuvem.

Em alguns casos, o console do Firebase realmente delega no console da nuvem para lidar com algumas tarefas comuns, como gerenciamento de faturamento e gerenciamento administrativo de usuários (conhecido como Gerenciamento de identidade e acesso ou IAM no console da nuvem). Então, se você está trabalhando com o Firebase console, de alguma forma, clica em algo com um tema da interface do usuário em azul e branco, acaba de ser enviado para o console da nuvem. O mesmo projeto, console e interface do usuário diferentes. Veja o que parece se você tentar clicar em uma conta de faturamento no console do Firebase. É definitivamente o console do Cloud, mesmo que esteja escrito "Firebase" no topo:

Há uma coisa super importante a saber sobre esses contêineres do projeto. Como o projeto subjacente é o mesmo para o Firebase e o GCP, se você excluir o projeto usando o Firebase ou o console do Cloud, excluirá tudo nesse contêiner, independentemente de onde ele tenha sido configurado ou criado. Por isso, se você criou um projeto com o Cloud Console, depois adicionará o Firebase a ele e, em seguida, excluirá o projeto no Firebase console, todos os seus dados do Cloud também serão excluídos.

Um projeto do GCP existente pode ser configurado para adicionar serviços do Firebase

Agora, vamos imaginar que você criou um projeto no console da nuvem. No início, seu projeto não terá nada diretamente relacionado ao Firebase configurado nele. Afinal, o console na nuvem não sabe se você pretende criar um aplicativo para dispositivos móveis, então por que configurar isso? Mas se você tiver um projeto do Cloud existente, poderá adicionar o Firebase a ele com facilidade.

Para adicionar serviços do Firebase a um projeto existente, acesse o Firebase console e clique no botão "adicionar". Quando ele solicita o nome do seu projeto, você tem a oportunidade de escolher um projeto existente na lista suspensa que mostra seus projetos existentes que não têm o Firebase adicionado.

Quando você seleciona um projeto e continua a partir desse ponto, todas as APIs e serviços que potencializam os produtos do Firebase serão ativados automaticamente no seu projeto e você poderá usar o console do Firebase para trabalhar com esses produtos.

Se você está se perguntando o que exatamente quero dizer com " APIs e serviços ", esse é um conceito do GCP que só é visível no console da nuvem. Aqui está uma captura de tela do painel de APIs e serviços do console na nuvem depois que o Firebase foi adicionado a um projeto:

Aqui, você pode ver várias APIs (ativadas por padrão), juntamente com algumas APIs de produtos do Firebase destacadas na caixa vermelha. Esse detalhe de APIs ativadas está oculto aos desenvolvedores no console do Firebase, porque não é realmente necessário saber. No entanto, o conhecimento das APIs e serviços do GCP ganha importância à medida que o back-end de um aplicativo se torna mais sofisticado. Por exemplo, um desenvolvedor de aplicativos pode usar a API do Cloud Vision para extrair texto de imagens capturadas pela câmera do dispositivo. Depois, vá mais além e traduza o texto descoberto nessa imagem usando a Cloud Translation API . Para usar essas APIs (e ser cobrado por elas), você precisa ativá-las no console da nuvem. Uma vez ativado, você pode chamá-los de seu código de back-end (implantado no Cloud Functions, por exemplo).

Conforme você se diverte em cada console, uma coisa que talvez perceba é que o conjunto de produtos que você pode gerenciar no Firebase console tem três itens em comum com o conjunto de produtos no console do Cloud. Esses produtos são Cloud Storage, Cloud Firestore e Cloud Functions. Embora cada produto seja basicamente o mesmo, independentemente de onde você o visualiza, cada um deles é organizado e gerenciado de maneiras muito diferentes entre o console do Firebase e o console na nuvem. Isso me leva ao meu próximo ponto.

O Firebase adiciona SDKs, ferramentas e configurações a alguns produtos do Google Cloud

Como você pode deduzir de seus nomes, Cloud Storage, Cloud Firestore e Cloud Functions são produtos do Google Cloud. Tecnicamente, eles não são produtos do Firebase, embora você possa trabalhar com eles no Firebase console e manipulá-los no seu aplicativo usando ferramentas e SDKs do Firebase. Primeiro, algumas definições rápidas:

  • O Cloud Storage ( Firebase , GCP ) é um sistema de armazenamento de arquivos altamente escalável.
  • O Cloud Firestore ( Firebase , GCP ) é um banco de dados NoSQL em tempo real altamente escalável.
  • Cloud Functions ( Firebase , GCP ) fornece infra-estrutura de computação sem servidor para programação orientada a eventos

Sem o Firebase na imagem , esses produtos em nuvem costumam ser usados em ambientes corporativos, onde dados e processos são controlados em sua maioria no Google Cloud ou em algum outro back-end. Para trabalhar com esses produtos de maneira programática, o Google Cloud fornece APIs de clientes destinadas ao código de back-end, juntamente com as ferramentas de linha de comando gcloud e gsutil .

Com o Firebase na imagem , esses três produtos podem funcionar perfeitamente com aplicativos para dispositivos móveis fornecendo SDKs adicionais para clientes móveis, ferramentas adicionais com o Firebase CLI e uma maneira de configurar regras de segurança para controlar o acesso aos dados por meio dos SDKs fornecidos. Falarei sobre algumas das especificidades dessas adições do Firebase em postagens futuras.

(Já que mencionei o Cloud IAM anteriormente, devo mencionar que o Firebase oferece funções adicionais do IAM para alguns produtos do Firebase que dão acesso granular a outros membros da equipe a esses produtos, sem o risco de fazer uma alteração perigosa em outro local do projeto.)

Observe que os nomes desses três produtos Cloud não mudam de uma perspectiva do Firebase. Eu sei que é tentador (e natural!) Dizer coisas como "Firebase storage" e "Firebase Functions", mas esses nomes não são precisos. Estou sendo pedante sobre isso? Talvez, mas você não encontrará esses nomes em nenhum lugar na documentação formal! No entanto, você verá nomes como “Cloud Storage para Firebase” e “Funções de nuvem para Firebase” ao lidar com os Firebase add-ons para estes produtos em nuvem.

OK, qual é o resultado de tudo isso?

Se você é um desenvolvedor de aplicativos do Firebase, provavelmente criou seu projeto no Firebase console. Mas, em algum momento, talvez você precise pular para o console da nuvem para algumas tarefas administrativas, expandir sua infraestrutura de nuvem ou usar APIs da nuvem. O console do Firebase é apenas o começo para criar a infraestrutura do seu aplicativo para dispositivos móveis.

Se você for um desenvolvedor de infraestrutura em nuvem e quiser criar aplicativos para dispositivos móveis ou da web com os dados que já armazenou, será necessário acessar o Firebase console para lidar com configurações e tarefas exclusivas das adições do Firebase para alguns produtos Cloud.

Na verdade, as ações em projetos do Google também são projetos do GCP (se você estiver trabalhando com o DialogFlow). Esses projetos têm o Firebase ativado por padrão , de modo que você pode ter uma nova perspectiva em um projeto do GCP. Em qualquer caso, não importa como seu projeto surgiu, o console com o qual você começou pode não ser o único console que você usa. Pensar em um projeto principalmente como um contêiner para serviços e APIs facilita essa transição. Cada console oferece uma visualização desses serviços e APIs de uma maneira diferente.