Скопируйте документ в другую коллекцию с angularfire2 - PullRequest
0 голосов
/ 11 февраля 2019

Я пытаюсь скопировать содержимое одного документа в другую коллекцию, но не могу этого сделать.это мой код

сначала я получаю ссылку с:

this.pollRef = this.afs.collection('polls').doc(pollId);

, затем я пытаюсь скопировать его в другую коллекцию с таким кодом:

//Option 1 copy the documentRef
var idBefore = this.afs.createId();
console.log(idBefore);
const datas = { name: 'hola' }
this.afs.collection('rooms').doc(idBefore).set(datas);
var idBefore2 = this.afs.createId();
this.afs.collection('rooms')
        .doc(idBefore)
        .collection('poll')
        .doc(idBefore2)
        .set(this.pollRef);

это броситьэта ошибка:

Ошибка: Ошибка вызова функции DocumentReference.set () с неверными данными.Данные должны быть объектом, но это был: пользовательский объект AngularFirestoreDocument

1 Ответ

0 голосов
/ 11 февраля 2019

Наконец, я могу решить это.Я поделюсь ответом с сообществом

var idBefore = this.afs.createId();
    console.log(idBefore);
    const datas = { name: 'hola' }
    this.afs.collection('rooms').doc(idBefore).set(datas);
  
    var pollId: string = this.roomForm.get('pollId').value;
    const x = this.pollsService.getPoll(pollId);
    x.subscribe(poll => {
      //this.spinnerService.hide();
      const pollData = poll.payload.data() as Poll;
      pollData["id"] = pollId;
      this.PollModel = pollData;
      console.log(this.PollModel);
      this.afs.doc(`rooms/${idBefore}`).collection('polls').add(this.PollModel)
  
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...