J'ai un modèle appelé customStep
et je veux pousser la liste de customStep appelée customSteps
à Firestore.
Voici le code pour cela:
Firestore.instance .collection('customSteps') .add({'customSteps': customSteps});
La collection customSteps contient des documents et ces documents consistent en un champ customSteps pour stocker un tableau de customStep. Cependant, ce code pousse le tableau vide vers le firestore. Comment puis-je le résoudre?
3 Réponses :
Pour pousser un objet vers Firestore, vous devez convertir votre objet en carte, ajoutez cette fonction à votre classe:
static List<Map> ConvertCustomStepsToMap({List<CustomStep> customSteps}) { List<Map> steps = []; customSteps.forEach((CustomStep customStep) { Map step = customStep.toMap(); steps.add(step); }); return steps; }
Pour pousser une liste d'étapes personnalisées, vous devez convertir tous les objets en carte , vous pouvez le faire avec la méthode suivante:
Map<String, dynamic> toMap() { return { 'yourField1': yourValue1, 'yourField2': yourValue1, }; }
Sur Firebase, vous ne pouvez pas enregistrer de modèle personnalisé dans un Document
En fait, vous pouvez créer une CustomStep
et une CustomSteps
Collection.
Dans votre document CustomSteps
, vous pouvez créer un tableau
de Reference
qui est en fait un chemin vers votre autre CustomStep code > Document.
Cela implique d'obtenir l'ID à chaque fois que vous créez un CustomStep
sur Firestore et que vous l'utilisez comme référence.
J'espère que ça aide !!
Vous devez créer un tableau de carte, comme l'image ci-dessous. Cette carte sera votre "Objet".
Donc, dans votre modèle, vous devez déclarer:
class Model { ArrayList<CheckList> checklist = null } class CheckList implements Serializable { String item = null, boolean isChecked = false }
CustomSteps est-il une liste d'objets?