Дублирование вложенных объектов в новый рекордный магазин - PullRequest
1 голос
/ 26 сентября 2019

Я пытаюсь продублировать и скопировать вложенную коллекцию в новую запись в firebase firestore с помощью пакетной записи, но у меня возникли проблемы.На данный момент ниже создается все категории, а затем подкатегории, но не создается последний вложенный объект вопроса.Как лучше всего делать что-то подобное?

      catRef.snapshotChanges().pipe(  
          map(categories => {
            categories.map(c => {
              var newCatRef = this.db.collection('content').doc(newVRef.id) //categories ref
                .collection('categories').ref.doc();
              batch.set(newCatRef, c.payload.doc.data());
              catRef.doc(c.payload.doc.id)   //subcategories ref
                .collection('subCategories').snapshotChanges()
                .pipe(map(subCategories => {
                  subCategories.map(s => {
                    var newSubCatRef = this.db.collection('content').doc(newVRef.id)
                      .collection('categories').doc(newCatRef.id).collection('subCategories').ref.doc();
                    batch.set(newSubCatRef, s.payload.doc.data()); //batch add
                    catRef.doc(c.payload.doc.id) //questions ref
                      .collection('subCategories').doc(s.payload.doc.id)
                      .collection('questions').snapshotChanges()
                      .pipe(map(questions => {
                        questions.map(q => {
                          var newQuestionRef = this.db.collection('content').doc(newVRef.id)
                            .collection('categories').doc(newCatRef.id)
                            .collection('subCategories').doc(newSubCatRef.id)
                            .collection('questions').ref.doc();
                          batch.set(newQuestionRef, q.payload.doc.data());
                        });
                      })).subscribe(() => {
      batch.commit();
});
                  });
                })).subscribe();
            });
          })).subscribe();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...