Pular para conteúdo

Configuração

Precedência do app principal

O flavor Firebase é resolvido por resolveFirebaseFlavor:

Prioridade Fonte Valores
1 --dart-define=FLAVOR dev, prod
2 flavor Android via MethodChannel dev, prod
3 application ID sufixo .dev implica dev; outro ID não vazio implica prod
4 modo de build release → prod; demais → dev

O resultado escolhe .env.dev ou .env.prod e DefaultFirebaseOptions.currentPlatformForFlavor(flavor). Emuladores só são conectados quando o app está em debug e USE_FIREBASE_EMULATOR=true.

Variáveis do app principal

Estas chaves são lidas via flutter_dotenv:

Nome Default Consumidor
USE_FIREBASE_EMULATOR desabilitado bootstrap do app
AUTH_EMULATOR_HOST 127.0.0.1 Firebase Auth
AUTH_EMULATOR_PORT 9099 Firebase Auth
FIRESTORE_EMULATOR_HOST 127.0.0.1 Cloud Firestore
FIRESTORE_EMULATOR_PORT 8081 Cloud Firestore
FUNCTIONS_EMULATOR_HOST 127.0.0.1 Cloud Functions
FUNCTIONS_EMULATOR_PORT 5001 Cloud Functions
STORAGE_EMULATOR_HOST 127.0.0.1 Firebase Storage
STORAGE_EMULATOR_PORT 9199 Firebase Storage

Os arquivos .env, .env.dev e .env.prod aparecem na lista de assets de aivaleu_app; um checkout novo precisa criá-los antes de buildar esse app.

Dart defines dos outros apps

App Define Default
Super Admin USE_FIREBASE_EMULATOR false
Super Admin RECAPTCHA_SITE_KEY valor público de site compilado no código
Garçom USE_FIREBASE_EMULATOR false
Garçom RECAPTCHA_SITE_KEY valor público de site compilado no código
Garçom FIREBASE_EMULATOR_HOST 127.0.0.1
Garçom AUTH_EMULATOR_PORT 9099
Garçom FIRESTORE_EMULATOR_PORT 8081
Garçom FUNCTIONS_EMULATOR_PORT 5001

O Super Admin usa localhost e portas fixas no modo local. Para execução web, App Check usa reCAPTCHA Enterprise; no monitor nativo, o helper registra que reCAPTCHA só se aplica à web.

Segredos das Functions

Declarados com defineSecret:

Nome Uso
STRIPE_SECRET_KEY cliente server-side Stripe e cancelamento na exclusão
STRIPE_WEBHOOK_SECRET valida assinatura do webhook
STRIPE_PRICE_PREMIUM_MONTHLY plano mensal oficial
STRIPE_PRICE_PREMIUM_LAUNCH_MONTHLY plano de lançamento
STRIPE_SUCCESS_URL redirect após Checkout concluído
STRIPE_CANCEL_URL redirect após cancelamento
STRIPE_PORTAL_RETURN_URL retorno do Customer Portal

No emulador, forneça placeholders/test credentials somente em functions/.secret.local. Em produção, configure Firebase/Google Cloud Secret Manager. Nunca inclua valores em documentação, logs ou commit.

Variáveis de scripts

Nome Uso
FIRESTORE_EMULATOR_HOST Admin SDK aponta para Firestore local; obrigatório em scripts seguros de teste
FIREBASE_AUTH_EMULATOR_HOST seed de usuários Auth local
GCLOUD_PROJECT / FIREBASE_PROJECT projeto explícito de scripts administrativos
SUPER_ADMIN_UID UID alvo do grant de claim
GOOGLE_APPLICATION_CREDENTIALS credencial administrativa fora do emulador

grant_super_admin_claim.js, backfills com --apply, deploy e qualquer script sem host de emulador podem escrever em ambiente remoto. Confirme projeto e credenciais antes de executar.

Scheduler operacional

O documento settings/schedulers contém três jobs conhecidos:

Job Intervalo default Habilitado
campaignAutoTransitions 5 min sim
closeExpiredCampaigns 10 min sim
expireCoupons 30 min sim

Intervalos aceitos: 1, 5, 10, 60 e 720 minutos. O scheduler implantado desperta a cada minuto; shouldRun decide se a lógica executa. resetTrendingProducts não usa este documento.

Remote Config

As chaves de apresentação/versionamento estão em Domínio e dados. Remote Config não concede permissões, Premium ou status de campanha.