хранение данных из service.ts для использования в том же service.ts - PullRequest
0 голосов
/ 25 января 2019

У меня есть firestore.service.ts, и в методе я создаю и обновляю коллекцию в firebase ... после выхода из метода я изменяю "id" коллекций, но мне НУЖНО, чтобы этот "id" был не потерял, потому что мне нужно к следующему методу. Как я могу сохранить это значение "id"?

  public createFormulario ( data ) {
        return this.firestore.collection('formularios').add(data).then
        (ref => {
          data.id = ref.id; <==keep this data.id
         this.firestore.collection('formularios').doc( ref.id ).update(data);
        });

  public createPregunta1 ( data: any ) {

    this.firestore.collection('formularios').doc( 'i need the above data.id here' ).update(data);
}

Итак, мне нужно захватить data.id из createFormulario ... и использовать его в другом методе с именем createPregunta1.

очевидно, когда приложение запускается и переходит с первой страницы на вторую. этот data.id получает значение null

1 Ответ

0 голосов
/ 25 января 2019

Вы можете объявить переменную в вашем сервисе / классе, например, id: number; На эту ссылку можно ссылаться в любом месте вашего класса.

Так что в вашем методе createFormulario вы можете сказать this.id = ref.id; Это сохранитглобальный идентификатор (внутри службы), и вы можете ссылаться на него в методе createPreguntal как this.id.

export class FirestoreService {
  //declare our class variables
  id: number;

  public createFormulario ( data ) {
      return this.firestore.collection('formularios').add(data).then
          (ref => {
            this.id = ref.id; //store the id in our class variable
            this.firestore.collection('formularios').doc( ref.id ).update(data);
          });
  }

  public createPregunta1 ( data: any ) {
      this.firestore.collection('formularios').doc(this.id).update(data);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...