ENV audit — 2026-08-07
npm run env:check → PASS (core local). Chi tiết OWNER gaps bên dưới.
Matrix
| Surface | Core local | Google Web | Google iOS | Google Android | Firebase client | Firebase Admin |
|---|---|---|---|---|---|---|
root .env |
OK | — | — | — | — | — |
api/.env |
OK | OK (khớp mobile) | OK | MISSING | — | MISSING SA |
mobile/.env.local |
OK | OK | OK | MISSING | OK (welife-2412) |
— |
partner/.env |
OK | — | — | — | — | — |
driver/.env |
OK | — | — | — | — | — |
dashboard/.env |
OK | — | — | — | — | — |
Đã hoàn thiện tự động
- Firebase public SDK trên mobile (từ
google-services.json) - iOS Client ID (từ
GoogleService-Info.plist) - Google Web Client ID api↔mobile khớp
- Placeholder keys Android + Firebase Admin template trên
api/.env env:checkbáo WARN rõ Firebase SA / Android OAuth
Cập nhật sau Google Client IDs (cùng ngày)
- Sync Web / Android / iOS Client ID api↔mobile ·
GOOGLE_CLIENT_IDS(3 audiences) - Auth: Nest Google/password primary; Firebase bridge opt-in
EXPO_PUBLIC_FIREBASE_BRIDGE=1
OWNER còn thiếu (không bịa)
- Firebase Admin —
FIREBASE_CLIENT_EMAIL+FIREBASE_PRIVATE_KEY(chỉ cần nếu bật bridge) - Tải lại
google-services.jsonkhioauth_clientcòn[](Firebase Console) - Pay/SMS live — vẫn mock/console (đúng local)
Lệnh
npm run env:check
# Expo (Windows SSL): cd mobile && npm run start:clear