check_if_exist_certificate function

dynamic check_if_exist_certificate({
  1. required String course_id,
  2. required BuildContext context,
  3. required bool show_has_certificate,
})

Implementation

check_if_exist_certificate({
  required String course_id,
  required BuildContext context,
  required bool show_has_certificate,
}) async {
  User user = FirebaseAuth.instance.currentUser!;
  Map user_info = await get_user_info(user.uid);
  List? certificates = user_info["certificates"];

  bool has_certificates = false;
  bool has_certificate = false;

  if (certificates != null) {
    if (certificates.isNotEmpty) {
      has_certificates = true;
    }
  }

  if (has_certificates) {
    for (var certificate in certificates!) {
      FirebaseFirestore.instance
          .collection('certificates')
          .doc(certificate)
          .get()
          .then((DocumentSnapshot snapshot_certificate) {
        String snapshot_course_id = snapshot_certificate.get("course_id");

        if (snapshot_course_id == course_id) {
          has_certificate = true;
        }
        save_certificate(
          user: user,
          user_info: user_info,
          course_id: course_id,
          has_certificate: has_certificate,
          context: context,
          show_has_certificate: show_has_certificate,
        );
      });
    }
  } else {
    save_certificate(
      user: user,
      user_info: user_info,
      course_id: course_id,
      has_certificate: has_certificate,
      context: context,
      show_has_certificate: show_has_certificate,
    );
  }
}