
Firebase Database
Use when syncing real-time data, structuring JSON trees, reading/writing, creating...
Install
npx skills add evanca/flutter-ai-rules --skill firebase-database -g -a claude-code -y- Repository
- evanca/flutter-ai-rules668
- Category
- Security
- Updated
- 5d ago
- License
- MIT
- Context cost
- Mediumabout 1,945 tokens
- Runs scripts
- No, instructions only
What it does
Use when syncing real-time data, structuring JSON trees, reading/writing, creating listeners, enabling offline persistence, managing presence, sharding, or writing security rules.
Firebase Realtime Database Skill
This skill defines how to correctly implement Firebase Realtime Database in Flutter applications, covering data modeling, queries, real-time sync, offline support, and security rules.
When to Use
Use this skill when working with Firebase Realtime Database for simple data models, low-latency sync, or presence functionality. For rich data models requiring complex queries and high scalability, use Cloud Firestore instead.
1. Database Selection
Choose Realtime Database when the app needs:
- Simple data models with simple lookups.
- Extremely low-latency synchronization (typical response times under 10ms).
- Deep queries that return an entire subtree by default.
- Access to data at any granularity, down to individual leaf-node values.
- Frequent state-syncing with built-in presence functionality.
Choose Cloud Firestore instead for rich data models requiring queryability, scalability, and high availability.
2. Setup and Configuration
flutter pub add firebase_database
import 'package:firebase_database/firebase_database.dart';
// After Firebase.initializeApp():
final DatabaseReference ref = FirebaseDatabase.instance.ref();
- Select the database location closest to users.
- Enable persistence for offline capabilities:
FirebaseDatabase.instance.setPersistenceEnabled(true);
FirebaseDatabase.instance.setPersistenceCacheSizeBytes(10000000); // 10MB
Setup Checklist
- Confirm
Firebase.initializeApp()completes before accessingFirebaseDatabase.instance. - Set persistence before any read/write operations.
- Verify connectivity by writing a test value and reading it back.
3. Data Structure
- Structure data as a flattened JSON tree, avoid deep nesting.
- Maximum nesting depth is 32 levels.
- Design the data structure to support the most common queries.
- Use push IDs for unique identifiers in list-type data:

