addSavedRoute method
//////////// //////////// Adds a saved route reference for a user
Implementation
// II.E - Route Management
///////////////
/// Adds a saved route reference for a user
Future<void> addSavedRoute(String uid, String routeId) async {
try {
if (!_isOnline) {
// Update cache and track change
_updateCacheForArrayOperation(uid, 'savedRoutes', routeId, isAddition: true);
_trackPendingChanges(uid, {'savedRoutes': FieldValue.arrayUnion([routeId])});
return;
}
await _firestore.collection(_collectionPath).doc(uid).update({
'savedRoutes': FieldValue.arrayUnion([routeId]),
});
// Update cache
_updateCacheForArrayOperation(uid, 'savedRoutes', routeId, isAddition: true);
} catch (e) {
print('Error adding saved route: $e');
if (e is FirebaseException && e.code == 'unavailable') {
// We're offline, update cache and track for later
_updateCacheForArrayOperation(uid, 'savedRoutes', routeId, isAddition: true);
_trackPendingChanges(uid, {'savedRoutes': FieldValue.arrayUnion([routeId])});
}
rethrow;
}
}