Comece a usar o Cloud Storage nas plataformas Apple

O Cloud Storage para Firebase permite fazer upload e compartilhar conteúdo gerado pelo usuário, como imagens e vídeos, o que permite criar conteúdo rich media em seus aplicativos. Seus dados são armazenados em um bucket do Google Cloud Storage , uma solução de armazenamento de objetos em escala de exabytes com alta disponibilidade e redundância global. O Cloud Storage para Firebase permite fazer upload desses arquivos com segurança, diretamente de dispositivos móveis e navegadores da Web, lidando com redes irregulares com facilidade.

Pré-requisitos

  1. Instale o SDK do Firebase .
  2. Adicione seu aplicativo ao projeto do Firebase no console do Firebase .

Criar um intervalo padrão do Cloud Storage

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

  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.

    • Esta 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 no 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á terá um local de recurso padrão do GCP. Foi definido durante a criação do projeto ou durante a configuração de 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 somente 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 a qualquer pessoa, até mesmo a pessoas que não usam seu aplicativo. Portanto, restrinja seu Cloud Storage novamente ao configurar a autenticação.

Adicione Cloud Storage ao seu aplicativo

Use o Swift Package Manager para instalar e gerenciar dependências do Firebase.

  1. No Xcode, com o projeto do seu aplicativo aberto, navegue até File > Add Packages .
  2. Quando solicitado, adicione o repositório SDK das plataformas Apple do Firebase:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Escolha a biblioteca Cloud Storage.
  5. Adicione o sinalizador -ObjC à seção Outros sinalizadores de vinculador das configurações de compilação do seu destino.
  6. Quando terminar, o Xcode começará automaticamente a resolver e baixar suas dependências em segundo plano.

Configurar armazenamento em nuvem

Você deve inicializar o Firebase antes de qualquer referência do Firebase ser criada ou usada. Se você já fez isso para outro recurso do Firebase, pode pular esta etapa.

  1. Importe o módulo FirebaseCore em seu UIApplicationDelegate , bem como quaisquer outros módulos Firebase que seu delegado de aplicativo usa. Por exemplo, para usar o Cloud Firestore e o Authentication:

    SwiftUI

    import SwiftUI
    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Rápido

    import FirebaseCore
    import FirebaseFirestore
    import FirebaseAuth
    // ...
          

    Objetivo-C

    @import FirebaseCore;
    @import FirebaseFirestore;
    @import FirebaseAuth;
    // ...
          
  2. Configure uma instância compartilhada FirebaseApp no ​​método application(_:didFinishLaunchingWithOptions:) delegado do seu aplicativo:

    SwiftUI

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Rápido

    // Use Firebase library to configure APIs
    FirebaseApp.configure()

    Objetivo-C

    // Use Firebase library to configure APIs
    [FIRApp configure];
  3. Se estiver usando SwiftUI, você deve criar um delegado de aplicativo e anexá-lo à estrutura App por meio de UIApplicationDelegateAdaptor ou NSApplicationDelegateAdaptor . Você também deve desativar o swizzling de delegado do aplicativo. Para obter mais informações, consulte as instruções do SwiftUI .

    SwiftUI

    @main
    struct YourApp: App {
      // register app delegate for Firebase setup
      @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate
    
      var body: some Scene {
        WindowGroup {
          NavigationView {
            ContentView()
          }
        }
      }
    }
          
  4. Obtenha uma referência ao serviço Cloud Storage usando o aplicativo padrão do Firebase:

    Rápido

    let storage = Storage.storage()
    

    Objetivo-C

    FIRStorage *storage = [FIRStorage storage];
    

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 de usuários nessas regiões para reduzir a latência.

O segundo caso de uso é útil se você tiver dados com padrões de acesso diferentes. Por exemplo: você pode configurar um bucket multirregional ou regional que armazene imagens ou outro conteúdo acessado com frequência e um bucket 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 buckets do Cloud Storage .

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

Use vários buckets 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 FIRStorage que faça referência ao seu bucket personalizado:

Rápido

// Get a non-default Cloud Storage bucket
storage = Storage.storage(url:"gs://my-custom-bucket")
    

Objetivo-C

// Get a non-default Cloud Storage bucket
FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
    

Trabalhando com buckets 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 SDK do Google Cloud :

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 Firebase personalizado

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

Rápido

// Get the default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp)

// Get a non-default bucket from a custom FirebaseApp
storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
    

Objetivo-C

// Get the default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp];

// Get a non-default bucket from a custom FIRApp
FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
    

Próximos passos