получать данные из firebase и отображать их с помощью списка nativescript - PullRequest
0 голосов
/ 09 мая 2020

Я использую nativescript-firebase-plugin для получения данных из firebase. Ниже приведен снимок экрана моего экземпляра базы данных. enter image description here

Я следую примеру из Блог Jen Looper. Код для firebase.service.ts приведен ниже:

 getMyWishList(): Observable<any> {
    return new Observable((observer: any) => {
      let path = 'movie/';

      let onValueEvent = (snapshot: any) => {
        this.ngZone.run(() => {
          // console.log('snapshot'+ snapshot.value);
          let results = this.handleSnapshot(snapshot.value);
         console.log('jjjj');
          observer.next(results);
        });
      };
      firebase.addValueEventListener(onValueEvent, `/${path}`);
     });
    }


    handleSnapshot(data: any) {
      this._allItems = [];
      if (data) {
        for (let id in data) {
             this._allItems.push(data);
        }
      this.publishUpdates();
    }
    return this._allItems;
    }


    publishUpdates() {
      // here, we sort must emit a *new* value (immutability!)
      this._allItems.sort(function(a, b) {
        if (a.name < b.name) return -1;
        if (a.name > b.name) return 1;
        return 0;
      });
      this.items.next([...this._allItems]);
    }

Вызывается эта служба в моем home.compon enet .ts, используя

`        
this.datas$ = <any>this.firebaseService.getMyWishList(); 
`

Затем в home.component. html попытался использовать nativescript listview для отображения данных экземпляра базы данных. `

<StackLayout class="card">
      <ListView [items]="datas$ | async"  height="300">
          <GridLayout>
                <ng-template let-item="item">                  
                  <GridLayout columns="auto,*,auto">
                      <Label class="m-5"   col="1" [text]="item.link"></Label>  //Line 1
                      <Label class="m-5"   col="1" [text]="item.name"></Label>  //Line2
                  </GridLayout>                 
              </ng-template>
          </GridLayout>
      </ListView>
  </StackLayout>

`

Но listView пуст, когда я использую item.link или item.name. Но когда я использую item.video1.link, он работает. Теперь я предполагаю, что документ mov ie является элементом в listView, но мне нужно создавать документы внутри / mov ie как элемент и динамически отображают их значение. Также, если listView работает таким образом, то как это полезно, поскольку мы сможем отобразить только одну строку документа. Пожалуйста, помогите мне найти здесь проблему.

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