Catch up on everything announced at Firebase Summit, and learn how Firebase can help you accelerate app development and run your app with confidence. Learn More

Comece a usar o Cloud Storage no Android

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

O armazenamento em nuvem para Firebase permite que você carregue e compartilhe conteúdo gerado pelo usuário, como imagens e vídeos, o que permite criar conteúdo de mídia avançada em seus aplicativos. Seus dados são armazenados em um bucket do Google Cloud Storage — uma solução de armazenamento de objetos em escala exabyte com alta disponibilidade e redundância global. O armazenamento em nuvem para Firebase permite que você carregue com segurança esses arquivos diretamente de dispositivos móveis e navegadores da Web, lidando com redes irregulares com facilidade.

Pré-requisitos

Se ainda não o fez, adicione o Firebase ao seu projeto Android .

Crie um bucket padrão do Cloud Storage

  1. No painel de navegação do Firebase console , selecione Armazenamento e clique em Começar .

  2. Revise as mensagens sobre como proteger seus dados do Cloud Storage usando regras de segurança. Durante o desenvolvimento, considere configurar suas regras para acesso público .

  3. Selecione um local para seu bucket padrão do Cloud Storage.

    • Essa configuração de local é o local de recurso padrão do Google Cloud Platform (GCP) do seu projeto. Observe que esse local será usado para serviços do GCP em seu projeto que exigem uma configuração de local, especificamente, seu banco de dados do Cloud Firestore e seu aplicativo do App Engine (o que é necessário se você usar o Cloud Scheduler).

    • Se você não conseguir selecionar um local, seu projeto já tem um local de recurso padrão do GCP. Foi definido durante a criação do projeto ou ao configurar outro serviço que requer uma configuração de localização.

    Se você estiver no plano Blaze, poderá criar vários buckets , cada um com seu próprio local .

  4. Clique em Concluído .

Configurar o acesso público

O Cloud Storage para Firebase fornece uma linguagem de regras declarativas que permite definir como seus dados devem ser estruturados, como devem ser indexados e quando seus dados podem ser lidos e gravados. Por padrão, o acesso de leitura e gravação ao Cloud Storage é restrito para que apenas usuários autenticados possam ler ou gravar dados. Para começar sem configurar a Autenticação , você pode configurar suas regras para acesso público .

Isso torna o Cloud Storage aberto para qualquer pessoa, mesmo para pessoas que não usam seu aplicativo, portanto, certifique-se de restringir seu Cloud Storage novamente ao configurar a autenticação.

Adicione o Cloud Storage SDK ao seu aplicativo

No arquivo Gradle do módulo (nível do aplicativo) (geralmente <project>/<app-module>/build.gradle ), adicione a dependência para a biblioteca Android do Cloud Storage. Recomendamos usar o Firebase Android BoM para controlar o controle de versão da biblioteca.

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.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-ktx'
}

Ao usar o Firebase Android BoM , seu aplicativo sempre usará versões compatíveis das bibliotecas do Firebase Android.

(Alternativa) Adicionar dependências da biblioteca Firebase sem usar o BoM

Se você optar por não usar o Firebase BoM, deverá especificar cada versão da biblioteca Firebase em sua linha de dependência.

Observe que, se você usar várias bibliotecas do Firebase em seu aplicativo, recomendamos usar o BoM para gerenciar as versões da biblioteca, o que garante que todas as versões sejam compatíveis.

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-ktx:20.1.0'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.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'
}

Ao usar o Firebase Android BoM , seu aplicativo sempre usará versões compatíveis das bibliotecas do Firebase Android.

(Alternativa) Adicionar dependências da biblioteca Firebase sem usar o BoM

Se você optar por não usar o Firebase BoM, deverá especificar cada versão da biblioteca Firebase em sua linha de dependência.

Observe que, se você usar várias bibliotecas do Firebase em seu aplicativo, recomendamos usar o BoM para gerenciar as versões da biblioteca, o que garante que todas as versões sejam compatíveis.

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:20.1.0'
}

Configurar armazenamento em nuvem

A primeira etapa para acessar seu bucket do Cloud Storage é criar uma instância do FirebaseStorage :

Kotlin+KTX

storage = Firebase.storage

Java

FirebaseStorage storage = FirebaseStorage.getInstance();

Você está pronto para começar a usar o Cloud Storage!

Primeiro, vamos aprender como criar uma referência do Cloud Storage .

Configuração avançada

Existem alguns casos de uso que requerem configuração adicional:

O primeiro caso de uso é perfeito se você tiver usuários em todo o mundo e quiser armazenar seus dados perto deles. Por exemplo, você pode criar buckets nos EUA, Europa e Ásia para armazenar dados para usuários nessas regiões para reduzir a latência.

O segundo caso de uso é útil se você tiver dados com diferentes padrões de acesso. Por exemplo: você pode configurar um depósito multirregional ou regional que armazene imagens ou outro conteúdo acessado com frequência e um depósito nearline ou coldline que armazene backups de usuários ou outro conteúdo acessado com pouca frequência.

Em qualquer um desses casos de uso, convém usar vários intervalos do Cloud Storage .

O terceiro caso de uso é útil se você estiver criando um aplicativo, como o Google Drive, que permite que os usuários tenham várias contas conectadas (por exemplo, uma conta pessoal e uma conta de trabalho). Você pode usar uma instância personalizada do Firebase App para autenticar cada conta adicional.

Use vários intervalos do Cloud Storage

Se você quiser usar um bucket do Cloud Storage diferente do padrão fornecido acima ou usar vários buckets do Cloud Storage em um único aplicativo, crie uma instância do FirebaseStorage que faça referência ao seu 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");

Trabalhando com baldes importados

Ao importar um bucket existente do Cloud Storage para o Firebase, você terá que conceder ao Firebase a capacidade de acessar esses arquivos usando a ferramenta gsutil , incluída no Google Cloud SDK :

gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>

Você pode encontrar o número do seu projeto conforme descrito na introdução aos projetos do Firebase .

Isso não afeta os buckets recém-criados, pois eles têm o controle de acesso padrão definido para permitir o Firebase. Esta é uma medida temporária e será executada automaticamente no futuro.

Use um aplicativo personalizado do Firebase

Se você estiver criando um aplicativo mais complicado usando um FirebaseApp personalizado, poderá criar uma instância de FirebaseStorage inicializada com esse aplicativo:

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óximos passos