Я хочу добиться, чтобы при загрузке флаттера документ создавался в хранилище в следующем порядке.
Document > Sub Collection > Document > Data Fields
Мне удается создать документы и вложенные коллекции в указанном выше порядке, но первые Document
появляются в italic
. Это потому, что коллекция child
, документы создаются до parent
документа.
Но я не смог решить проблему. Я изменил код, теперь он даже не создает документ. До этого он создавался в режиме italic
. Теперь это совсем не так.
Вот код.
getCurrentUser().then((user) {
DocumentReference todayReference = firestoreInstance.collection('attendance').document(todayDate);
firestoreInstance.collection('profiles').where('user_id', isEqualTo: user).snapshots().listen((onData) {
onData.documents.forEach((f) {
CollectionReference todaySubCollection = todayReference.collection(f.documentID);
DocumentReference attendanceReference = todaySubCollection.document(f["name"].toString().toLowerCase());
Map<String,dynamic> mapData = new Map<String,dynamic>();
mapData['attendance_status'] = true;
mapData['in'] = true;
mapData['out'] = true;
firestoreInstance.runTransaction((transaction) async {
await transaction.set(attendanceReference, mapData);
});
});
});
});
Здесь getCurrentUser()
возвращает вошедших в систему user id
.
Каждый profiles
назначен на user
.
Итак, я пытаюсь сделать следующее: после входа пользователя в систему документ должен создать в attendance
коллекцию с именем today's date
.
Затем циклически просматривая каждый profiles
, где user_id
сопоставляется с зарегистрированным пользователем, результаты сопоставления будут сохранены как sub collection
в today's date
с полями name
.
Затем в name
(документ) необходимо выполнить транзакцию, чтобы установить такие детали, как attendance_status
, in
& out
.
На следующих изображениях будет показано, как были созданы документы.
Мне нужно найти способ создания документов без сбора в режиме italic
. Любая помощь будет оценена.