saveProduct function

Future<String?> saveProduct(
  1. ProviderData provider, {
  2. bool admin = false,
})

Implementation

Future<String?> saveProduct(ProviderData provider, {bool admin = false}) async {
  User? user = FirebaseAuth.instance.currentUser;
  if (user == null)
    return "user == null";
  try{
    // await FirebaseFirestore.instance.collection("listusers").doc(user.uid).set({
    //   "providerId": parent.providerData.id
    // }, SetOptions(merge:true));
    //

    if (currentProduct.id.isEmpty) {
      if (!admin) {
        currentProduct.providers.add(provider.id);
        currentProduct.taxAdmin = provider.tax;
      }
      var _data = currentProduct.toJson();
      var t = await FirebaseFirestore.instance.collection("service").add(_data);
      currentProduct.id = t.id;
      product.add(currentProduct);
      await FirebaseFirestore.instance.collection("settings").doc("main")
          .set({"service_count": FieldValue.increment(1)}, SetOptions(merge:true));
    }else {
      var _data = currentProduct.toJson();
      await FirebaseFirestore.instance.collection("service").doc(
          currentProduct.id).set(_data, SetOptions(merge: true));
    }
  }catch(ex){
    return "saveProduct " + ex.toString();
  }
  return null;
}