Configuração do Ambiente - CAKeysama/ReTool GitHub Wiki

Configuração do Ambiente

Todos os comandos abaixo rodam dentro da pasta retool/, salvo indicação.

Pré-requisitos

Ferramenta Versão Para quê
Node.js 22 (é o engines das Cloud Functions; o projeto foi validado com 22.17) App, testes e funções
npm o que acompanha o Node.js Dependências
Git qualquer recente Código
Java (JDK) 11 ou superior Somente para os emuladores do Firebase (testes de regras e funções, desenvolvimento offline)
Acesso ao projeto Firebase conta com permissão no projeto que o app usa Rodar contra dados reais e fazer deploy

O Firebase CLI não precisa ser instalado globalmente: ele é dependência de desenvolvimento e é usado como npx firebase-tools.

Instalação

git clone https://github.com/CAKeysama/ReTool.git
cd ReTool/retool
npm install

As dependências das Cloud Functions ficam em retool/functions/. O script dos emuladores instala essas dependências sozinho quando necessário; para instalar manualmente:

npm --prefix functions install

Variáveis de ambiente

O app lê a configuração do Firebase de um arquivo retool/.env, que não é versionado (está no .gitignore). Use retool/.env.example como modelo:

cp .env.example .env
Variável Uso
VITE_USE_FALLBACK_DB true usa o projeto de fallback; qualquer outro valor usa o principal
VITE_FIREBASE_API_KEY, VITE_FIREBASE_AUTH_DOMAIN, VITE_FIREBASE_PROJECT_ID, VITE_FIREBASE_STORAGE_BUCKET, VITE_FIREBASE_MESSAGING_SENDER_ID, VITE_FIREBASE_APP_ID, VITE_FIREBASE_MEASUREMENT_ID Configuração web do projeto principal
VITE_FIREBASE_FALLBACK_* (mesmos sufixos) Configuração web do projeto de fallback
VITE_USE_FIREBASE_EMULATORS true conecta aos emuladores locais. Definida em .env.emulador (versionado); não coloque no .env

Os valores ficam no Firebase Console → Configurações do projeto → Seus apps → Configuração do SDK. Exemplo com placeholders:

VITE_USE_FALLBACK_DB=false
VITE_FIREBASE_API_KEY=seu_valor_aqui
VITE_FIREBASE_AUTH_DOMAIN=seu-projeto.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=seu-projeto
VITE_FIREBASE_STORAGE_BUCKET=seu-projeto.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=seu_valor_aqui
VITE_FIREBASE_APP_ID=seu_valor_aqui
VITE_FIREBASE_MEASUREMENT_ID=seu_valor_aqui

As variáveis VITE_* entram no pacote do navegador durante o build. A configuração web do Firebase não dá acesso sozinha; quem protege os dados são as regras (ver Segurança). Ainda assim, o .env não deve ser versionado.

Projetos Firebase

O arquivo .firebaserc define dois aliases:

Alias Projeto Variáveis usadas pelo app
default retool-c25a9 VITE_FIREBASE_*
fallback retool2-ef7be VITE_FIREBASE_FALLBACK_* (quando VITE_USE_FALLBACK_DB=true)

⚠️ Regras, índices e funções precisam ser publicados no mesmo projeto que o .env faz o app usar. Se o .env estiver com VITE_USE_FALLBACK_DB=true, use --project fallback nos comandos de deploy. Ver Build e Deploy.

Execução local

Contra o Firebase real

npm run dev

O Vite abre em http://localhost:5173. O app usa o projeto definido no .env, com os dados e as contas reais.

Contra os emuladores (sem tocar em dados reais)

Use dois terminais:

# terminal 1 — sobe Auth, Firestore, Functions e Storage locais (compila as funções antes)
npm run emuladores
# terminal 2, com os emuladores no ar (uma vez por execução): cria contas de demonstração
node scripts/semearEmulador.mjs
# terminal 2 — o app apontando para os emuladores
npm run dev:emuladores
  • Os emuladores usam o projeto demo-retool, que não existe na nuvem.
  • As contas de demonstração (uma da Administração e uma da Engenharia) e as senhas delas estão definidas em scripts/semearEmulador.mjs e só existem no emulador.
  • Os dados dos emuladores se perdem quando eles param.
Emulador Porta
Authentication 9099
Firestore 8181
Functions 5001
Storage 9199
Hub 4400

Primeira conta de Administração

Não existe administrador com credenciais fixas. A primeira conta admin é promovida manualmente no Console: veja Usuários, Cargos e Permissões → Primeira conta de Administração.

Próximos passos