Skip to content

Deploy Firestore Rules

Date: 2026-01-17
Status: Active

Quick Deploy

After modifying firestore.rules, deploy changes to Firebase:

bash
# Login to Firebase (if not already logged in)
firebase login

# Deploy only Firestore rules (faster than full deploy)
firebase deploy --only firestore:rules

# Or deploy to specific project
firebase deploy --only firestore:rules --project lantern-app-dev

What Changed (2026-01-17)

Added rules for venueRefreshMetadata collection to fix permission errors:

// Venue Refresh Metadata - tracks when areas were last refreshed
match /venueRefreshMetadata/{geohashPrefix} {
  // All authenticated users can read refresh metadata (for staleness checks)
  allow read: if isAuthenticated();
  
  // Only backend/admin can write refresh metadata
  // In dev mode, allow authenticated users for local testing
  allow write: if isAuthenticated();
  
  // TODO: In production, restrict writes to Cloud Functions only:
  // allow write: if false; // Only backend can update
}

This collection tracks when geographic areas (identified by geohash prefix) were last refreshed from OSM/Google Places API.

Testing Rules Locally

You can test rules locally with the Firebase emulator:

bash
# Start Firestore emulator
firebase emulators:start --only firestore

# Run tests against emulator
npm run test:firestore

Rollback

If you need to rollback:

bash
# View previous versions in Firebase Console
# Or restore from git
git checkout HEAD~1 firestore.rules
firebase deploy --only firestore:rules

See Also

Built with VitePress