getExercises method
- String exerciseName
Returns all exercises matching exerciseName.
Implementation
Future<List<Map<String, dynamic>>> getExercises(String exerciseName) async {
final snapshot = await firestore.collection('exercises').get();
final prefs = await SharedPreferences.getInstance();
final locale = prefs.getString('locale');
final results = snapshot.docs
.where((doc) {
String name;
String description;
if (locale == 'de') {
name = doc['name'] as String;
description = doc['description'] as String;
} else {
name = doc['name_en'] as String;
description = doc['description_en'] as String;
}
final nameSimilarity = StringSimilarity.compareTwoStrings(
name.toLowerCase(),
exerciseName.toLowerCase(),
);
final descriptionSimilarity = StringSimilarity.compareTwoStrings(
description.toLowerCase(),
exerciseName.toLowerCase(),
);
return nameSimilarity > 0.4 || descriptionSimilarity > 0.4;
})
.map((doc) => doc.data())
.toList();
return results;
}