Task 002: Firebase Service Extensions
Description
Extend SimpleFirebaseService with READ, WRITE, and WATCH methods for trend operations, including transaction-based duplicate prevention and real-time collection monitoring.
Acceptance Criteria
Technical Details
- Location: src/services/simple_firebase_service.py
WATCH Method (NEW - CRITICAL):
watch_collection(collection_name, callback) - Real-time collection monitoring
- Uses Firestore's
on_snapshot() for push-based updates
- Callback fired on: ADD, MODIFY, DELETE events
- No polling, no TTL, always fresh data
- Pattern:
collection_ref.on_snapshot(lambda snapshot: callback(self._parse_snapshot(snapshot)))
READ Methods:
- Use @firestore.transactional decorator for _create_trend_transactional
- Query by trend_name within transaction for duplicate check
- Return existing trend_id if duplicate found (no write)
WRITE Methods:
- Use ArrayUnion for atomic memecoin append
- Use Increment for atomic memecoin_count update
- Promotion threshold: env var TREND_PROMOTION_THRESHOLD (default 5)
- Move from potential_trends to confirmed_trends collection atomically
Effort Estimate
- Size: M
- Hours: 10-14 (increased for watch_collection implementation)
- Parallel: false (depends on Task 001 for models)
Task 002: Firebase Service Extensions
Description
Extend SimpleFirebaseService with READ, WRITE, and WATCH methods for trend operations, including transaction-based duplicate prevention and real-time collection monitoring.
Acceptance Criteria
Technical Details
WATCH Method (NEW - CRITICAL):
watch_collection(collection_name, callback)- Real-time collection monitoringon_snapshot()for push-based updatescollection_ref.on_snapshot(lambda snapshot: callback(self._parse_snapshot(snapshot)))READ Methods:
WRITE Methods:
Effort Estimate