Com o Cloud Storage for Firebase, você faz upload e compartilha conteúdo gerado pelo usuário, como imagens e vídeo, para criar conteúdo de rich media nos apps. Seus dados são armazenados em um bucket do Google Cloud Storage, uma solução de armazenamento de objetos com capacidade que chega aos exabytes, além de alta disponibilidade e redundância global. Com o Cloud Storage for Firebase, o upload dos arquivos é feito com segurança e facilidade diretamente de dispositivos móveis e navegadores da Web, mesmo em redes intermitentes.
Antes de começar
Conclua o guia para iniciantes de apps Android, se ainda não tiver feito isso. Isso inclui:
Como criar um projeto do Firebase.
Registre o app Android no projeto e conecte-o ao Firebase adicionando as dependências do Firebase, o plug-in dos Serviços do Google e o arquivo de configuração do Firebase (
google-services.json
) ao app.
Verifique se o projeto do Firebase está no plano de preços do Blaze de pagamento por uso. Se você ainda não conhece o Firebase e o Google Cloud, pode conferir se tem qualificação para receber um crédito de US$ 300.
Criar um bucket padrão do Cloud Storage
No painel de navegação do console do Firebase, selecione Storage.
Se o projeto ainda não estiver no plano de preços do Blaze de pagamento por uso, você vai receber uma mensagem para fazer upgrade.
Clique em Começar.
Selecione um local para o bucket padrão.
Os buckets em
,US-CENTRAL1
eUS-EAST1
podem aproveitar o nível Sempre sem custos financeiros para o Google Cloud Storage. Os buckets em todos os outros locais seguem os preços e usos do Google Cloud Storage.US-WEST1
Você tem a opção de criar vários bucketsmais tarde, cada um com o próprio local.
Configure o Firebase Security Rules para o bucket padrão. Durante o desenvolvimento, avalie a possibilidade de configurar as regras para acesso público.
Clique em Concluído.
Agora você pode conferir o bucket na
guia Arquivos do Cloud Storage
no console do Firebase. O formato de nome do bucket padrão é
PROJECT_ID.firebasestorage.app
Configurar acesso público
O Cloud Storage for Firebase oferece uma linguagem declarativa de regras para que você defina como os dados devem ser estruturados e indexados e quando podem ser lidos e gravados. Por padrão, o acesso de leitura e gravação do Cloud Storage é restrito aos usuários autenticados. Para iniciar sem configurar o Authentication, defina as regras para acesso público.
Isso deixa o Cloud Storage disponível para todos, até para os que não usam o app. Por isso, restrinja o Cloud Storage novamente quando configurar a autenticação.
Adicionar o SDK do Cloud Storage ao seu app
No arquivo Gradle do módulo (nível do app) (geralmente<project>/<app-module>/build.gradle.kts
ou <project>/<app-module>/build.gradle
), adicione a dependência da biblioteca do Cloud Storage para Android. Recomendamos o uso do
Firebase Android BoM
para lidar com o controle de versões da biblioteca.
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:33.6.0")) // Add the dependency for the Cloud Storage library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage") }
Com o Firebase Android BoM, seu app sempre vai usar versões compatíveis das bibliotecas do Firebase para Android.
(Alternativa) Adicionar dependências das bibliotecas do Firebase sem usar o BoM
Se você preferir não usar o Firebase BoM, especifique cada versão das bibliotecas do Firebase na linha de dependência correspondente.
Se você usa várias bibliotecas do Firebase no app, recomendamos utilizar o BoM para gerenciar as versões delas, porque isso ajuda a garantir a compatibilidade de todas as bibliotecas.
dependencies { // Add the dependency for the Cloud Storage library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-storage:21.0.1") }
Configurar o Cloud Storage no app
Verifique se o arquivo de configuração do Firebase (
google-services.json
) na base de código do app foi atualizado com o nome do bucket Cloud Storage padrão.Use esse arquivo de configuração baixado para substituir o arquivo
google-services.json
atual no diretório do módulo do app (nível do app).É importante que você tenha apenas o arquivo de configuração mais recente salvo no app e que o nome do arquivo não tenha caracteres adicionais, como
(2)
.
Acesse o bucket Cloud Storage criando uma instância de
FirebaseStorage
:Kotlin+KTX
storage = Firebase.storage
// Alternatively, explicitly specify the bucket name URL. // val storage = Firebase.storage("gs://BUCKET_NAME")
Java
FirebaseStorage storage = FirebaseStorage.getInstance();
// Alternatively, explicitly specify the bucket name URL. // FirebaseStorage storage = FirebaseStorage.getInstance("gs://BUCKET_NAME");
Você já pode começar a usar o Cloud Storage!
Próxima etapa? Saiba como criar uma referência do Cloud Storage.
Configuração avançada
Há alguns casos de uso que exigem configuração adicional:
- Usar buckets do Cloud Storage em várias regiões geográficas.
- Usar buckets do Cloud Storage em diferentes classes de armazenamento.
- Usar buckets do Cloud Storage com vários usuários autenticados no mesmo app.
O primeiro caso de uso é perfeito para quem tem usuários em todo o mundo e quer armazenar os dados perto deles. Por exemplo, para armazenar os dados dos usuários dos EUA, da Europa e da Ásia, crie buckets nessas regiões para reduzir a latência.
O segundo caso de uso é útil quando você tem dados com diferentes padrões de acesso. Por exemplo, configure um bucket regional ou multirregional que armazene imagens ou outros conteúdos acessados frequentemente e um bucket nearline ou coldline que armazene backups de usuários ou outros conteúdos pouco acessados.
Em qualquer um desses casos de uso, é recomendável usar vários buckets do Cloud Storage.
O terceiro caso de uso é útil ao criar um app, como o Google Drive, em que os usuários têm diversas contas conectadas. Por exemplo, uma conta pessoal e uma conta corporativa. Para autenticar cada conta adicional, use uma instância de um app personalizado do Firebase.
Usar vários buckets do Cloud Storage
Para usar um bucket Cloud Storage diferente do padrão descrito
anteriormente neste guia ou vários buckets Cloud Storage em um único app,
crie uma instância do FirebaseStorage
que faça referência ao bucket personalizado:
Kotlin+KTX
// Get a non-default Storage bucket val storage = Firebase.storage("gs://my-custom-bucket")
Java
// Get a non-default Storage bucket FirebaseStorage storage = FirebaseStorage.getInstance("gs://my-custom-bucket");
Trabalhar com buckets importados
Ao importar um bucket do Cloud Storage para o Firebase, é preciso conceder ao Firebase acesso a esses arquivos com a ferramenta gsutil
inclusa no SDK Google Cloud:
gsutil -m acl ch -r -u service-PROJECT_NUMBER@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://BUCKET_NAME
Você pode encontrar o número do projeto conforme descrito na introdução a projetos do Firebase.
Isso não afeta os buckets recém-criados, porque eles têm o controle de acesso padrão, que autoriza o Firebase. Essa é uma medida temporária e será realizada automaticamente no futuro.
Usar um app personalizado do Firebase
Para desenvolver um app mais complexo usando um FirebaseApp
personalizado,
crie uma instância de FirebaseStorage
inicializada com o app:
Kotlin+KTX
// Get the default bucket from a custom FirebaseApp val storage = Firebase.storage(customApp!!) // Get a non-default bucket from a custom FirebaseApp val customStorage = Firebase.storage(customApp, "gs://my-custom-bucket")
Java
// Get the default bucket from a custom FirebaseApp FirebaseStorage storage = FirebaseStorage.getInstance(customApp); // Get a non-default bucket from a custom FirebaseApp FirebaseStorage customStorage = FirebaseStorage.getInstance(customApp, "gs://my-custom-bucket");
Próximas etapas
Prepare-se para lançar seu aplicativo:
Ative o App Check para garantir que apenas seus apps possam acessar os buckets de armazenamento.
Configure os alertas de orçamento para seu projeto no console Google Cloud.
Monitore o painel Uso e faturamento no console do Firebase para ter uma visão geral do uso do projeto em vários serviços do Firebase. Também é possível acessar o painel Uso do Cloud Storage para ver mais informações detalhadas.
Consulte a lista de verificação de lançamento do Firebase.