V23 · Firebase dev runtime

Tách local, development, staging và production cho Firebase.

V23 đặt profile môi trường để tránh seed nhầm, deploy nhầm rules hoặc dùng Admin SDK như đường tắt vượt consent.

local-emulator

exixt-local

Auth: firebase-id-token · Firestore: emulator

Rules: firestore_schema/security.rules

Seed: firestore_schema/seed-demo.json

Cho seed phá hủy:

  • NEXT_PUBLIC_FIREBASE_PROJECT_ID
  • FIRESTORE_EMULATOR_HOST
development

exixt-dev

Auth: firebase-id-token · Firestore: emulator

Rules: firestore_schema/security.rules

Seed: firestore_schema/seed-demo.json

Cho seed phá hủy: không

  • NEXT_PUBLIC_FIREBASE_PROJECT_ID
  • FIREBASE_PROJECT_ID
staging

exixt-staging

Auth: firebase-id-token · Firestore: production

Rules: firestore_schema/security.rules

Cho seed phá hủy: không

  • NEXT_PUBLIC_FIREBASE_PROJECT_ID
  • FIREBASE_PROJECT_ID
  • FIREBASE_CLIENT_EMAIL
  • FIREBASE_PRIVATE_KEY
production

exixt-prod

Auth: firebase-id-token · Firestore: production

Rules: firestore_schema/security.rules

Cho seed phá hủy: không

  • NEXT_PUBLIC_FIREBASE_PROJECT_ID
  • FIREBASE_PROJECT_ID
  • FIREBASE_CLIENT_EMAIL
  • FIREBASE_PRIVATE_KEY

Nguyên tắc

  • Local emulator là nơi duy nhất được seed/destructive reset.
  • Development/staging/production không được import seed demo nếu chưa có lệnh có chủ đích.
  • Firebase Auth chỉ xác minh actor; repository/consent gate vẫn quyết định dữ liệu được dùng.
  • Audit events là append-only ở rules và ở adapter runtime.
  • Organization observer chỉ đọc aggregate snapshot, không đọc subtree cá nhân.