Skip to main content

Backup Schedules

Automated backup schedules ensure your Firebase data is protected without manual intervention. This guide covers creating, managing, and optimizing backup schedules.

Understanding Schedules​

A backup schedule defines:

  • When backups run (cron expression or interval)
  • What to backup (project, collections)
  • How to backup (full/incremental, compression, encryption)
  • Where to store backups (storage destination)

Creating a Schedule​

Step 1: Navigate to Schedules​

  1. Click Schedules in the sidebar
  2. Click New Schedule

Step 2: Select Project​

Choose which Firebase project to schedule backups for:

  1. Select from the project dropdown
  2. Only connected projects with valid credentials appear

Step 3: Configure Frequency​

Preset Frequencies​

Choose from common presets:

PresetFrequencyUse Case
HourlyEvery hourHigh-change applications
Every 6 Hours4x dailyActive applications
DailyOnce per dayStandard protection
WeeklyOnce per weekLow-change data
MonthlyOnce per monthArchival purposes

Custom CRON Expression​

For advanced scheduling, use a CRON expression:

* * * * *
│ │ │ │ │
│ │ │ │ └─── day of week (0-6, Sun=0)
│ │ │ └───── month (1-12)
│ │ └─────── day of month (1-31)
│ └───────── hour (0-23)
└─────────── minute (0-59)

Examples:

ExpressionDescription
0 * * * *Every hour at :00
0 0 * * *Daily at midnight
0 0 * * 0Weekly on Sunday at midnight
0 2 * * *Daily at 2:00 AM
0 0 1 * *Monthly on the 1st at midnight
0 */4 * * *Every 4 hours
0 9-17 * * 1-5Hourly 9AM-5PM, Mon-Fri
Time Zone

All schedules use UTC by default. Configure your organization's time zone in Settings.

Step 4: Configure Backup Options​

OptionDescriptionRecommendation
Backup TypeFull or IncrementalMix both (see below)
CollectionsWhich to includeStart with all
Include AuthBackup Auth usersEnable if needed
StorageDestinationOrganization default
CompressionAlgorithmBrotli
EncryptionEnable encryptionAlways enabled

Backup Type Strategy​

Recommended strategy for optimal storage and recovery:

  1. Weekly Full Backup - Complete snapshot every Sunday
  2. Daily Incremental - Changes since last full backup

This provides:

  • Fast daily backups (smaller size)
  • Complete weekly snapshots
  • Recovery from any day

Step 5: Set Retention Policy​

Configure how long backups are kept:

PolicyDescription
Keep AllNever auto-delete
Keep Last NKeep only last N backups
Keep N DaysDelete backups older than N days
Retention and Recovery

Ensure your retention period covers your recovery requirements. For compliance, consult your data retention policies.

Step 6: Review and Create​

  1. Review all settings
  2. Click Create Schedule
  3. Schedule starts immediately (first backup at next scheduled time)

Managing Schedules​

Schedule List​

The schedules page shows all configured schedules:

ColumnDescription
NameSchedule identifier
ProjectTarget Firebase project
FrequencyHuman-readable schedule
Next RunWhen the next backup will start
Last RunWhen the last backup completed
StatusActive or Paused

Schedule Status​

  • Active (green) - Schedule is running normally
  • Paused (yellow) - Schedule is disabled
  • Error (red) - Last backup failed

Viewing Schedule Details​

Click any schedule to view:

Overview Tab​

  • Schedule configuration
  • Next scheduled run
  • Recent backup history

History Tab​

  • List of all backups from this schedule
  • Success/failure rates
  • Average backup duration

Statistics​

  • Total Backups: Count of backups created
  • Success Rate: Percentage of successful backups
  • Average Size: Mean backup size
  • Average Duration: Mean backup time

Editing Schedules​

To modify an existing schedule:

  1. Navigate to the schedule
  2. Click Edit
  3. Modify settings
  4. Click Save
Schedule Changes

Changes take effect immediately. The next backup will use the new settings.

Pausing and Resuming​

Pause a Schedule​

Temporarily stop scheduled backups:

  1. Navigate to the schedule
  2. Click Pause
  3. Confirm

Use cases:

  • During maintenance windows
  • When investigating issues
  • Temporary cost reduction

Resume a Schedule​

Re-enable a paused schedule:

  1. Navigate to the schedule
  2. Click Resume
  3. Next backup runs at scheduled time

Manual Trigger​

Run a scheduled backup immediately:

  1. Navigate to the schedule
  2. Click Run Now
  3. Backup starts immediately

This creates a backup using the schedule's configuration but doesn't affect the next scheduled run time.

Deleting Schedules​

To remove a schedule:

  1. Navigate to the schedule
  2. Click Delete
  3. Confirm deletion
Backup Retention

Deleting a schedule does NOT delete existing backups. To remove backups, delete them separately in the Backups page.

Schedule Statistics​

Overview Statistics​

View aggregate statistics across all schedules:

  • Total Active Schedules: Number of enabled schedules
  • Backups Today: Scheduled backups completed today
  • Storage Used: Total storage from scheduled backups
  • Success Rate: Overall success percentage

Per-Schedule Statistics​

Each schedule tracks:

MetricDescription
Total RunsNumber of times executed
SuccessfulCompleted successfully
FailedEncountered errors
Success RatePercentage successful
Avg DurationMean backup time
Avg SizeMean backup size

Best Practices​

Frequency Selection​

Data Change RateRecommended Frequency
High (>1000 docs/hour)Hourly
Medium (100-1000 docs/day)Every 6 hours
Low (<100 docs/day)Daily
Very Low (<10 docs/week)Weekly

Schedule Timing​

  1. Off-peak hours: Schedule during low-traffic periods
  2. Stagger schedules: Don't run all at the same time
  3. Time zones: Consider global user base

Multiple Schedules​

For comprehensive protection:

Schedule 1: Full backup, Weekly (Sunday 2AM)
Schedule 2: Incremental backup, Daily (2AM, except Sunday)
Schedule 3: PITR enabled for continuous protection

Collection-Specific Schedules​

For large databases, create separate schedules:

Schedule A: Critical collections (users, orders), Hourly
Schedule B: Analytics collections, Daily
Schedule C: Logs collection, Weekly

Notifications​

Configure notifications for schedule events:

Webhook Notifications​

Receive webhooks on:

  • Backup started
  • Backup completed
  • Backup failed

See Webhooks Integration for setup.

Slack Notifications​

Get Slack messages for schedule events:

See Slack Integration for setup.

Troubleshooting​

Schedule Not Running​

Possible causes:

  1. Schedule is paused
  2. Previous backup still running
  3. OAuth token expired
  4. Worker service down

Solution:

  1. Check schedule status
  2. Review recent backup history
  3. Verify project connection
  4. Check system status page

Backups Taking Too Long​

Possible causes:

  1. Large data volume
  2. Slow storage destination
  3. Network issues

Solution:

  1. Reduce collection scope
  2. Use incremental backups
  3. Choose closer storage region
  4. Schedule during off-peak hours

High Failure Rate​

Possible causes:

  1. Insufficient IAM permissions
  2. Storage quota exceeded
  3. Network instability

Solution:

  1. Re-authenticate project
  2. Check storage destination
  3. Review error messages
  4. Contact support if persistent

Next Steps​