Firebase e Google Cloud: o que é diferente no Cloud Storage?

Doug Stevenson em Google Developers Follow Mar 16 · 5 min ler

Em minhas postagens anteriores sobre (GCP), falei sobre o que é diferente entre os dois para o e o . Nesta postagem, o tópico será o Google Cloud Storage ( , ), um sistema de armazenamento de objetos altamente escalável e durável. Neste contexto, um “objeto” é tipicamente um arquivo – uma seqüência de bytes com um nome e alguns metadados.

É tentador pensar no Cloud Storage como um sistema de arquivos. De muitas maneiras, é semelhante, exceto por um fato importante: na verdade, não há diretórios ou pastas! Veja como isso realmente funciona. O nível superior da organização é chamado de , que é um contêiner de objetos. Cada bucket é efetivamente um grande namespace cheio de objetos, cada um com nomes exclusivos dentro desse espaço. Os nomes de objetos podem parecer e ter a mesma estrutura de diretórios (por exemplo, /users/lisa/photo.jpg), mas não há diretórios ou pastas nos bastidores. Esses são úteis para organização e navegação nos consoles Cloud e Firebase. Às vezes, usamos apenas a palavra “pasta” para facilitar a descrição desses caminhos.

Veja como é o console na nuvem quando você está navegando pelo conteúdo de um intervalo de armazenamento:

E é assim que o console do Firebase se parece com o mesmo intervalo:

Você perceberá que o console do Cloud coloca muito mais dados e funcionalidades na tela do que o console do Firebase. O console da nuvem expõe todo o poder do Cloud Storage, enquanto o console do Firebase expõe apenas os recursos que provavelmente serão importantes para os desenvolvedores do Firebase. Isso porque os casos de uso do Cloud Storage tendem a ser um pouco diferentes, dependendo da sua perspectiva.

Para desenvolvedores de nuvem

Os desenvolvedores de nuvem geralmente também são desenvolvedores corporativos. E, como você pode imaginar, os desenvolvedores corporativos têm requisitos amplos para o armazenamento de objetos. Eles estão usando o Cloud Storage para backups e arquivamentos, armazenamento regional, hospedagem de conteúdo estático, controle de acesso a objetos, controle de versão, carregamento e salvamento de dados no BigQuery e até mesmo a consulta de dados diretamente. O Cloud Storage é muito flexível! A maioria do acesso a um objeto é proveniente de sistemas de back-end, geralmente de outros produtos e APIs do Google Cloud e dos . Mas, para os desenvolvedores do Firebase, os casos de uso costumam ser mais restritos.

Para desenvolvedores do Firebase

O caso de uso mais comum para usar o Cloud Storage em um aplicativo da web ou móvel é manipular o conteúdo gerado pelo usuário. Um desenvolvedor pode permitir que os usuários armazenem imagens e vídeos capturados em seus dispositivos e, em seguida, permitir que os usuários visualizem os arquivos em outros dispositivos ou os compartilhem com amigos. O Firebase fornece SDKs (Android, iOS, Web, Unity, C ++) para fazer upload e download de objetos no armazenamento, diretamente do aplicativo, evitando a necessidade de outros componentes de back-end. Para ajudar com a privacidade e evitar abusos, o Firebase também fornece , em conjunto com o , para garantir que os usuários autenticados só possam ler e gravar os dados para os quais receberam permissão. Coletivamente, esses SDKs e regras de segurança são chamados de "Cloud Storage for Firebase".

Quando você cria um projeto do Firebase ou adiciona o Firebase a um projeto existente do GCP, um novo intervalo de armazenamento é criado automaticamente para esse projeto. Isso ajuda a reduzir a quantidade de configuração necessária para começar a usar o Cloud Storage em um aplicativo para dispositivos móveis. Como todos os nomes de buckets do Cloud Storage em todo o sistema devem ser exclusivos, esse novo bucket é chamado de "[SEU ID DO PROJETO] .appspot.com", onde SEU ID DO PROJETO é o de seu projeto. Você nem precisa saber o nome desse intervalo, pois ele é incorporado ao arquivo de configuração do aplicativo do Firebase. Quando o Firebase é inicializado, ele saberá automaticamente qual bucket usar por padrão. Na verdade, esse intervalo geralmente é chamado de "intervalo de armazenamento padrão" para o Firebase.

Para todos

Tudo o que foi dito, os desenvolvedores do Firebase não estão limitados a usar apenas SDKs do Firebase, e os desenvolvedores de nuvem podem optar por usar o Firebase para ler e gravar blocos existentes. Se você começou com o Firebase, pode usar qualquer uma das ferramentas, SDKs e configurações fornecidos pela nuvem a qualquer momento. E se você tiver dados existentes no Cloud Storage para usar em um aplicativo para dispositivos móveis, com certeza poderá para que isso aconteça.

Todas as pessoas que desejam acessar um intervalo do Cloud Storage na linha de comando podem usar a , desde que sua conta do Google esteja autorizada a fazer isso. A gsutil fornece comandos para fazer upload e download de arquivos localmente e para configurar um intervalo de armazenamento. Geralmente, é mais conveniente usar essa ferramenta do que qualquer um dos consoles da Web, especialmente para operações em massa.

Controle de acesso: qual é usado?

Há uma diferença interessante entre o Firebase e o Cloud. Como você acabou de ler, ambos fornecem controle de acesso a objetos em intervalos de armazenamento, mas essas regras são mutuamente exclusivas uma da outra. Você usa o para controlar o acesso a um objeto somente de sistemas de back-end e SDKs, mas usa as regras de segurança do Firebase para controlar o acesso somente de aplicativos para dispositivos móveis usando os SDKs do cliente do Firebase. Esses mecanismos de controle de acesso não se sobrepõem ou interferem entre si de maneira alguma. Observe que o do é na verdade um SDK do lado do servidor, que também pode ser usado para acessar o Cloud Storage. Na verdade, é, na verdade, apenas um wrapper em torno dos , que são controlados pelo IAM.

Como você está usando o Cloud Storage? Eu usei isso em alguns projetos experimentais. Há uma que armazena imagens de convidados que tocam a campainha e um “ ” que traduz a fala gravada em um dispositivo móvel. Verifique isso e me deixe saber o que você construiu também!

Texto original em inglês.