how to add new data to existing map in firebase flutter

Issue

here is the firebase document data

enter image description here

I want to add a new map value to the purchased-id. this is the current code

FirebaseFirestore.instance.collection('users').doc(userID).set({
  'purchased-id': {
    widget.head: widget.id,
  }
});               

but with this code the map value is replaced,
how do I add another map value to the existing map

like this

enter image description here

Solution

I think need merge: true to update the map with its new value.

FirebaseFirestore.instance.collection('users').doc(userID).set({
  'purchased-id': {
    widget.head: widget.id,
  }
}, SetOptions(merge: true));

Reference: https://firebase.google.com/docs/firestore/manage-data/add-data#update_fields_in_nested_objects

Also to differentiate with .set and .update, have a look at this answer: https://stackoverflow.com/a/47554197/11566161

Answered By – Shri Hari L

This Answer collected from stackoverflow, is licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply

(*) Required, Your email will not be published