Расширяя немного ответ, данный как комментарий выше
Вы должны заранее создать вспомогательную карту:
Map aux = new Map<String,dynamic>();
А затем выполните итерацию по массиву, в котором вы добавляете соответствующую карту для каждого дочернего элемента, который вы хотите добавить:
productList.forEach((product){
//Here you can set the key of the map to whatever you like
aux[product.id] = product.toMap();
});
На всякий случай функция toMap внутри класса Product должна выглядеть примерно так:
Map toMap() {
Map toReturn = new Map();
toReturn['id'] = id;
toReturn['name'] = name;
toReturn['description'] = description;
return toReturn;
}
И затем, когда вы вызываете функцию set для сохранения в firebase, вы можете сделать что-то вроде:
.set({'productList':aux,})
Надеюсь, это кому-то помогло.