Может только получить идентификатор из базы данных Firebase - PullRequest
0 голосов
/ 19 апреля 2019

Я использую NativeScript и плагин Firebase, чтобы я мог получить введенные данные по уникальному идентификатору. Моя проблема в том, что я получаю только идентификатор, а не данные, которые находятся внутри идентификатора. Вот как структурируются данные в Firebase: https://i.imgur.com/Jehig5r.png

Подчеркнутый идентификатор каждого журнала.

Это код для нажатия элемента на странице редактирования:

viewDetail(id: string){

    this.router.navigate(["./calendar-detail", id],
    {
        relativeTo: this.activatedRoute
    });
}

Компонент редактирования:

 private sub: any;
 public log: Observable<any>;

ngOnInit(){
this.sub = this.route.params.subscribe((params: any) => {
      this.id = params['id'];
      this.firebaseService.getMyLog(this.id).subscribe((log) => {
        this.ngZone.run(() => {
          for (let prop in log) {
            //props
            if (prop === "id") {
              this.id = log[prop];
            }
            if (prop === "mood") {
              this.mood = log[prop];
            }
            if (prop === "activity") {
              this.activity = log[prop];
            }
            if (prop === "other") {
              this.other = log[prop];
            }
          }
        });
      });
    });

Это служба Firebase, которая должна получать данные журнала из ID:

 getMyLog(id: string): Observable<any> {
    return new Observable((observer: any) => {
      observer.next(this._allItems.filter(s => s.id === id)[0]);
    }).share();
  }

На странице редактирования html из этого кода отображается идентификатор, но не «настроение»:

 <Label class="h2" [text]="mood"></Label>
 <Label class="h2" [text]="id"></Label>

Я все еще привыкаю к ​​Nativescript и Angular, поэтому я не уверен, что если я совершу глупую ошибку, любая помощь будет принята с благодарностью!

РЕДАКТИРОВАТЬ: Вот как я получаю список "журналов":

getLogList(): Observable<any> {
    return new Observable((observer: any) => {
      let path = 'Logs';

        let onValueEvent = (snapshot: any) => {
          this.ngZone.run(() => {
            let results = this.handleSnapshot(snapshot.value);
            console.log(JSON.stringify(results))
             observer.next(results);
          });
        };
        firebase.addValueEventListener(onValueEvent, `/${path}`);
    }).share();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...