Создание документов, сборников в Firestore через флаттер при загрузке экрана - PullRequest
0 голосов
/ 04 июня 2019

Я хочу добиться, чтобы при загрузке флаттера документ создавался в хранилище в следующем порядке.

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.

На следующих изображениях будет показано, как были созданы документы.

image 01 image 02

Мне нужно найти способ создания документов без сбора в режиме italic. Любая помощь будет оценена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...