помогите пожалуйста -
В одном из провайдеров есть такой метод:
Future<List<Master>> getMultipleMastersByIds(List<String> ids) async {
List<Master> masters = [];
try {
final collectionRef =
FirebaseFirestore.instance.collection(MASTERS_COLLECTION);
QuerySnapshot<Map<String, dynamic>> mastersSnap =
await collectionRef.where(FieldPath.documentId, whereIn: ids).get();
mastersSnap.docs.forEach((doc) {
Map<String, dynamic> docData = doc.data();
docData["id"] = doc.id;
masters.add(Master.fromJson(docData));
});
} catch (e) {
print(e);
print("Error - getMultipleMastersByIds");
}
return masters;
}
Этот вызов метода кидает эксепшен когда ни одного совпадения не найдено -
QuerySnapshot<Map<String, dynamic>> mastersSnap =
await collectionRef.where(FieldPath.documentId, whereIn: ids).get();
По этому и обернули все в трайкеч.
В эмуляторах и реальных девайсах все работает, ошибку ловим, и в любом случае отдаем масив пустой или с данными.
НО!!!
Во время продакшена, когда приложение скачено уже именно из Apple Connect, приложение крашется на этом эксепшене. По какой то причине не помогает трайкеч. Просто вылетает и все.
Кто знает это баг или я туплю? Плиз хелп)
попробуйте прописать через тернарный оператор возможность null и обработать его, а не вызывать ошибку
Обсуждают сегодня