Я пишу приложение flutter, в котором я устанавливаю экземпляр документа в firebase следующим образом:
await _firestoreInstance.collection("groups").document().setData(
{
'group_name': groupName,
'class_name': className,
'location': groupLocation,
'time': groupTime,
'date': groupDate,
'number_in_group': 1
},);
Затем я хочу взять указанный выше идентификатор документа и сделать что-то вроде этого:
_firestoreInstance.collection("colleges").document(collegeStudent.collegeId).collection('activeGroups').document().setData({'group_id':*above document id goes here*}); //above document id is the id of the document created by the first query
Итак, мой вопрос: есть ли способ получить идентификатор первого документа и использовать его в качестве ссылки для второго запроса?
Для упрощения document().setData(data)
я использовал add(data)
в своем решении, которое делает то же самое и возвращает DocumentReference
from document()
.
// insert your data ({ 'group_name'...) instead of `data` here
final DocumentReference documentReference =
await _firestoreInstance.collection("groups").add(data);
final String groupID = documentReference.documentID;
// groupID contains the documentID you were asking for
// here I am just inserting it into your example code from the question
_firestoreInstance.collection("colleges").document(collegeStudent.collegeId)
.collection('activeGroups')
.add({'group_id': groupID}); // using add instead of `document().setData` here as well
Как вы можете видеть, я использую возвращенный DocumentReference
(как объяснено выше) и использую documentID
геттер для извлечения идентификатора из вашего вновь созданного документа.
Эта статья взята из Интернета, укажите источник при перепечатке.
Если есть какие-либо нарушения, пожалуйста, свяжитесь с[email protected] Удалить.
я говорю два предложения