ionic如何从Firebase获取一定数量的数据

时间:2019-06-13 11:44:54

标签: angular firebase firebase-realtime-database ionic4

我想从我的Firebase数据库中获得RANDOM 3项。在我的数据库中,“食物”下有25个项目,每个项目的标题为“ 0”-“ 24”。每个项目的食物类型都称为“ wtype”。在这里,我想获得3个具有wtype =“ fruit”的随机项目。我该如何实现?

下面的代码显示了所有具有水果类型的项目,但我只希望3个具有水果类型的RANDOM项目。

food.page.html

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: "cell" , for : indexPath) as? customCell  else {
        print("custom cell are not set")
        return UITableViewCell()

    }
cell.NameLabel.Text = list[indexPath.row].name ?? "" 
.
.
.
return cell
}

food.page.ts

<ion-list  *ngIf="showFood">
    <ion-row *ngFor='let FoodFruit of showTypeOfFood("fruit")'>
        <ion-col>
            <ion-card>
                <div class="card-title">{{FoodFruit.wtitle}}</div>
            </ion-card>
        </ion-col>
    </ion-row>
</ion-list>
ionViewDidEnter(){
    this.currentUser = this.afAuth.auth.currentUser;

    if(this.currentUser == null){
     this.showFood = false;
    }
    else{
      this.showPersonalFood();
    }
}

showPersonalFood(){
    this.afAuth.auth.onAuthStateChanged(
    (user)=>{
      if(user){
        this.showFood = true;

    this.afDatabase.object('foods/').snapshotChanges().subscribe(
      (action)=>{
            if(action.payload.val())
            {
              console.log(action.payload.val());
              let items: any = action.payload.val();
              items.forEach(
                (food) =>{
                  this.foods.push(food);
                }
              );
            }
            else
            {
              console.log("No Data");
            }
          });
      }
    }
  );

}

请参考上面的showTypeOfFood(type) { let items:any = []; this.foods.forEach((Food)=>{ if(Food.wtype == type) { items.push(Food); } }); return items; } 函数。如何使用if语句仅获取3个具有特定类型的随机项目?谢谢

0 个答案:

没有答案