changeFavorites function

String? changeFavorites(
  1. ProductData item
)

Implementation

String? changeFavorites(ProductData item){
  User? user = FirebaseAuth.instance.currentUser;
  if (user == null)
    return "user == null";
  try{
    if (userAccountData.userFavorites.contains(item.id)) {
      userAccountData.userFavorites.remove(item.id);
      FirebaseFirestore.instance.collection("service").doc(item.id).set({
        "favoritesCount": FieldValue.increment(-1),
        "timeModify": FieldValue.serverTimestamp(),
      }, SetOptions(merge:true));
    }else {
      userAccountData.userFavorites.add(item.id);
      FirebaseFirestore.instance.collection("service").doc(item.id).set({
        "favoritesCount": FieldValue.increment(1),
        "timeModify": FieldValue.serverTimestamp(),
      }, SetOptions(merge:true));
    }

    FirebaseFirestore.instance.collection("listusers").doc(user.uid).set({
      "userFavorites": userAccountData.userFavorites,
    }, SetOptions(merge:true)).then((value2) {});

  }catch(ex){
    return "changeFavorites " + ex.toString();
  }
  return null;
}