Spaces:
Running
Running
File size: 1,958 Bytes
37d26f1 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #!/usr/bin/env bash
set -euo pipefail
APPLY_CHANGES=false
if [[ "${1:-}" == "--apply" ]]; then
APPLY_CHANGES=true
fi
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "${ROOT_DIR}"
if ! command -v firebase >/dev/null 2>&1; then
echo "Error: firebase CLI not found."
exit 1
fi
FIREBASE_PROJECT="$(sed -nE 's/.*"default"[[:space:]]*:[[:space:]]*"([^"]+)".*/\1/p' .firebaserc | head -n1)"
if [[ -z "${FIREBASE_PROJECT}" ]]; then
echo "Error: Could not parse default project from .firebaserc"
exit 1
fi
FRONTEND_ENV="web_app_pro/frontend/.env"
FRONTEND_PROJECT=""
if [[ -f "${FRONTEND_ENV}" ]]; then
FRONTEND_PROJECT="$(sed -nE 's/^VITE_FIREBASE_PROJECT_ID=(.*)$/\1/p' "${FRONTEND_ENV}" | tail -n1 | tr -d '"' | xargs)"
fi
echo "Firebase default project (.firebaserc): ${FIREBASE_PROJECT}"
echo "Frontend VITE_FIREBASE_PROJECT_ID: ${FRONTEND_PROJECT:-<missing>}"
if [[ -n "${FRONTEND_PROJECT}" && "${FRONTEND_PROJECT}" != "${FIREBASE_PROJECT}" ]]; then
echo "Mismatch detected: frontend project ID differs from .firebaserc default."
echo "Recommendation: align VITE_FIREBASE_PROJECT_ID with ${FIREBASE_PROJECT}."
exit 2
fi
echo
echo "Checking Firebase access for project ${FIREBASE_PROJECT}..."
firebase firestore:databases:list --project "${FIREBASE_PROJECT}" >/dev/null
echo "Firestore database access: OK"
echo "Listing Firestore indexes (remote):"
firebase firestore:indexes --project "${FIREBASE_PROJECT}" | head -n 50
echo
echo "Local config files used for sync:"
echo " - firebase.json"
echo " - firestore.rules"
echo " - firestore.indexes.json"
if [[ "${APPLY_CHANGES}" == "true" ]]; then
echo
echo "Deploying Firestore rules and indexes to ${FIREBASE_PROJECT}..."
firebase deploy --only firestore:rules,firestore:indexes --project "${FIREBASE_PROJECT}"
echo "Sync complete."
else
echo
echo "Dry check only."
echo "Run this to apply sync:"
echo " ./scripts/check_firebase_sync.sh --apply"
fi
|