Conecte seu aplicativo ao emulador de armazenamento em nuvem

Antes de conectar seu aplicativo para o emulador de armazenamento em nuvem, certifique-se de compreender o fluxo de trabalho global Firebase local Emulator Suíte , e que você instalar e configurar o emulador Suíte local e rever os seus comandos CLI .

Escolha um projeto Firebase

O Firebase Local Emulator Suite emula produtos para um único projeto Firebase.

Para selecionar o projeto para o uso, antes de iniciar os emuladores, na CLI prazo firebase use em seu diretório de trabalho. Ou, você pode passar o --project bandeira para cada comando emulador.

Local Emulator Suite suporta emulação de projetos Firebase reais e de demonstração projetos.

Tipo de projeto Recursos Use com emuladores
Real

Um projeto Firebase real é aquele que você criou e configurou (provavelmente por meio do console do Firebase).

Projetos reais têm recursos ativos, como instâncias de banco de dados, intervalos de armazenamento, funções ou qualquer outro recurso configurado para esse projeto do Firebase.

Ao trabalhar com projetos reais do Firebase, você pode executar emuladores para qualquer um ou todos os produtos compatíveis.

Para quaisquer produtos que não estão emulando, seus aplicativos e código irá interagir com o recurso ao vivo (instância de banco de dados, balde de armazenamento, função, etc.).

Demo

Um projeto Firebase demo tem nenhuma configuração Firebase real e sem recursos vivos. Esses projetos geralmente são acessados ​​por meio de codelabs ou outros tutoriais.

Projeto IDs para demonstração projetos têm o demo- prefixo.

Ao trabalhar com demonstração projectos Firebase, seus aplicativos e interagir código com apenas emuladores. Se seu aplicativo tentar interagir com um recurso para o qual não há um emulador em execução, esse código falhará.

Recomendamos que você use projetos de demonstração sempre que possível. Os benefícios incluem:

  • Configuração mais fácil, já que você pode executar os emuladores sem nunca criar um projeto Firebase
  • Segurança mais forte, já que se seu código invocar acidentalmente recursos não emulados (produção), não há chance de alteração de dados, uso e faturamento
  • Melhor suporte offline, já que não há necessidade de acessar a internet para baixar a configuração do SDK.

Instrua seu aplicativo para falar com os emuladores

Android, iOS e SDKs da Web

Defina sua configuração no aplicativo ou classes de teste para interagir com o emulador do Cloud Storage da seguinte maneira.

Android
FirebaseStorage.getInstance().useEmulator('10.0.2.2', 9199);
iOS - Swift
Storage.storage().useEmulator(withHost:"localhost", port:9199)
Web v8
var storage = firebase.storage();
storage.useEmulator("localhost", 9199);
Web v9 (beta)
import { getStorage, useStorageEmulator } from "firebase/storage";

const storage = getStorage();
useStorageEmulator(storage, "localhost", 9199);

Nenhuma configuração adicional é necessária para testar funções Nuvem desencadeadas por eventos Cloud Storage usando o emulador. Quando os emuladores do Cloud Storage e do Cloud Functions estão em execução, eles trabalham juntos automaticamente.

SDKs Admin

Os Firebase administrador SDKs conectar automaticamente para o emulador Cloud Storage quando o FIREBASE_STORAGE_EMULATOR_HOST variável de ambiente é definida:

export FIREBASE_STORAGE_EMULATOR_HOST="localhost:9199"

Observe que o emulador do Cloud Functions reconhece automaticamente o emulador do Cloud Storage, então você pode pular esta etapa ao testar as integrações entre o Cloud Functions e os emuladores do Cloud Storage. A variável de ambiente será definida automaticamente para o SDK Admin no Cloud Storage.

Ao se conectar ao emulador do Cloud Storage de qualquer outro ambiente, você precisará especificar um ID de projeto. Você pode passar um ID de projeto para initializeApp diretamente ou definir o GCLOUD_PROJECT variável de ambiente. Observe que você não precisa usar seu ID de projeto real do Firebase; o emulador Cloud Storage aceitará qualquer ID de projeto, contanto que ele tem um formato válido .

Node.js Admin SDK
admin.initializeApp({ projectId: "your-project-id" });
Variável de ambiente
export GCLOUD_PROJECT="your-project-id"

Importar e exportar dados

O banco de dados e os emuladores do Cloud Storage permitem que você exporte dados de uma instância do emulador em execução. Defina um conjunto de dados de linha de base para usar em seus testes de unidade ou fluxos de trabalho de integração contínua e, em seguida, exporte-o para ser compartilhado entre a equipe.

firebase emulators:export ./dir

Em testes, na inicialização do emulador, importe os dados da linha de base.

firebase emulators:start --import=./dir

Você pode instruir o emulador para exportar dados no desligamento, ou especificando um caminho de exportação ou simplesmente usando o caminho passado para o --import bandeira.

firebase emulators:start --import=./dir --export-on-exit

Estas opções de importação e exportação de dados trabalhar com os firebase emulators:exec comando também. Para mais informações, consulte a referência de comando emulador .

Limitações

O Cloud Storage Emulator tenta replicar fielmente o comportamento do serviço de produção com algumas limitações notáveis:

  • Usando o SDK Admin, apenas o upload de arquivos, o download de arquivos e a modificação de metadados de arquivos são permitidos. Outra funcionalidade fornecida por bibliotecas clientes do Google Cloud Storage ainda não está disponível.

Qual o proximo?