Flutter: получить идентификатор документа из первого магазина при вызове setData - PullRequest
0 голосов
/ 19 декабря 2018

Как получить вновь созданный идентификатор документа, когда мы вызываем setData

 Future<void> createCommitment() async {
        await widget._firestore
           .collection('skills')
           .document(widget.skillID)
           .collection("commitment")
           .document()
           .setData({
         'bite_id': widget.biteId,
         'start_date': widget.startDate,
         'frequnecy': 3
       });
     }

, текущая реализация возвращает void

Ответы [ 2 ]

0 голосов
/ 19 декабря 2018

Не используйте пустые document() или setData, вместо этого seData используйте add, например:

Future<void> createCommitment() async {
  DocumentReference docRef = await widget._firestore
      .collection('skills')
      .document(widget.skillID)
      .collection("commitment")
      .add({
    'bite_id': widget.biteId,
    'start_date': widget.startDate,
    'frequnecy': 3,
  });
  //Here you have the autogenerated ID :
  print("ID : ${docRef.documentID}");
}
0 голосов
/ 19 декабря 2018

Вы должны либо установить его самостоятельно:

DocumentReference _skillsRef = Firestore.instance.collection('skills').document(skillsID); 

, либо автоматически сгенерировать его:

DocumentReference _skillsRef = Firestore.instance.collection('skills').document(); 

, и этот реф - то, на что вы его установили:

_skillsRef.setData({
    'bite_id': widget.biteId,
    'start_date': widget.startDate,
    'frequency': 3
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...