removeFavorite method

Future<void> removeFavorite(
  1. String email,
  2. String exerciseName
)

Removes exercise from favourites of a user.

Implementation

Future<void> removeFavorite(String email, String exerciseName) async {
  final exerciseQuery = await firestore
      .collection('exercises')
      .where('name', isEqualTo: exerciseName)
      .get();

  if (exerciseQuery.docs.isEmpty) return;

  final exerciseDoc = exerciseQuery.docs.first;
  final exerciseRef = exerciseDoc.reference;

  final userQuery = await firestore
      .collection('users')
      .where('email', isEqualTo: email)
      .get();

  if (userQuery.docs.isEmpty) return;

  final userDoc = userQuery.docs.first;

  final favoriteQuery = await userDoc.reference
      .collection('favorites')
      .where('exercise', isEqualTo: exerciseRef)
      .get();

  if (favoriteQuery.docs.isEmpty) return;

  await favoriteQuery.docs.first.reference.delete();
}