Pular para conteúdo

Ambiente local

Pré-requisitos

  • Flutter/Dart compatível com sdk: ^3.10.7.
  • Node.js 22, conforme functions/package.json.
  • Firebase CLI.
  • Melos 7.x.
  • Java/Android SDK ou toolchain da plataforma Flutter que será executada.

Bootstrap do workspace

Na raiz do repositório:

dart pub global activate melos
melos bootstrap

O melos.yaml fornece os comandos comuns:

melos run analyze
melos run test
melos run clean

melos run analyze executa flutter analyze --no-pub em cada package; melos run test executa flutter test.

Firebase Emulator Suite

A configuração raiz usa estas portas:

Serviço Porta
Auth 9099
Functions 5001
Firestore 8081
Realtime Database 9000
Storage 9199
Emulator UI padrão da CLI

Para o backend:

cd functions
npm ci
npm run emulators

Para popular o ambiente de desenvolvimento, existe npm run seed. O script cria dados de teste; consulte o próprio script em vez de registrar senhas ou credenciais na documentação.

Não aponte testes destrutivos para produção

Os testes e seeds devem usar emuladores ou um projeto explicitamente descartável. Não execute backfills, seeds ou suítes com escrita contra o projeto de produção.

App principal em desenvolvimento

O bootstrap do app resolve dev ou prod e carrega .env.dev ou .env.prod. Para desenvolvimento:

cd apps/aivaleu_app
flutter run --flavor dev --dart-define=FLAVOR=dev

Quando USE_FIREBASE_EMULATOR=true e o build está em debug, o app conecta Auth, Firestore, Functions e Storage aos hosts/portas informados no arquivo de ambiente.

Em emulador Android, o host do computador costuma ser alcançado por 10.0.2.2; em desktop/web, normalmente 127.0.0.1 ou localhost é apropriado. A escolha deve corresponder ao ambiente real.

Super Admin Web

O painel aceita --dart-define=USE_FIREBASE_EMULATOR=true:

cd apps/super_admin_web
flutter run -d chrome --dart-define=USE_FIREBASE_EMULATOR=true

Em modo de emulador, o entrypoint aponta Auth 9099, Firestore 8081, Functions 5001 e Storage 9199 para localhost.

Waiter Desktop/Web

cd apps/waiter_desktop
flutter run -d windows --dart-define=USE_FIREBASE_EMULATOR=true

O host e as portas podem ser alterados com FIREBASE_EMULATOR_HOST, AUTH_EMULATOR_PORT, FIRESTORE_EMULATOR_PORT e FUNCTIONS_EMULATOR_PORT via --dart-define.

Backend isolado

cd functions
npm test

A suíte padrão ignora functions/tests/emulator/. Para os testes que dependem de Firestore Emulator:

npm run test:emulator