Firebase View Counter Setup Guide
Step 1: Create Firebase Project
- Go to Firebase Console
- Click “Create a project”
- Enter project name (e.g., “minseok-blog-views”)
- Disable Google Analytics (optional)
- Click “Create project”
Step 2: Set up Realtime Database
- In Firebase console, go to “Realtime Database”
- Click “Create Database”
- Choose “Start in test mode” (for now)
- Select your preferred location
- Click “Done”
Step 3: Get Firebase Configuration
- In Firebase console, click the gear icon → “Project settings”
- Scroll down to “Your apps” section
- Click “Web app” icon (</>)
- Register your app with name (e.g., “Blog View Counter”)
- Copy the configuration object
Step 4: Update _config.yml
Replace the Firebase section in _config.yml
with your actual values:
firebase:
api_key: "AIzaSyDGf7VklgsmmFMzSaQj0mHVQIPHZw2pcRY" # Your API key
auth_domain: "myhomepage-78f7b.firebaseapp.com"
database_url: "https://myhomepage-78f7b-default-rtdb.firebaseio.com"
project_id: "your-project"
storage_bucket: "your-project.appspot.com"
messaging_sender_id: "123456789"
app_id: "1:123456789:web:abcdef123456"
Step 5: Set Database Rules (Optional - for security)
In Firebase console → Realtime Database → Rules, you can set:
{
"rules": {
"views": {
".read": true,
".write": true,
"$page": {
".validate": "newData.isNumber() && newData.val() >= data.val()"
}
}
}
}
Step 6: Test
- Build your Jekyll site:
bundle exec jekyll serve
- Visit a post page
- Check browser console for any errors
- View count should appear and increment on new visits
- Check Firebase console → Realtime Database to see stored data
Features
- Global view counts: Shared across all visitors
- Session-based: One count per session per page
- Fallback: Uses localStorage if Firebase fails
- Real-time: Updates immediately in Firebase
- Error handling: Graceful degradation
Troubleshooting
- Check browser console for Firebase errors
- Verify Firebase config values are correct
- Ensure database rules allow read/write
- Test with different browsers/incognito mode