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