【问题标题】:Using Firebase, how can I remove duplicate results from a query?使用 Firebase,如何从查询中删除重复的结果?
【发布时间】:2017-09-30 04:20:19
【问题描述】:

我的最终计划是创建一个手风琴列表,通过单击相应的类别来显示食物名称。但是,现在我不需要显示重复的类别,如“乳制品”。我该怎么做?

我在 Firebase 中有以下数据库结构:

{
  "aePQkvozV6gehP7ihjN0OWCltKu2" : {
    "-Kv4xipPl0_2oztTMhaS" : {
      "category" : "Dairy",
      "foodname" : "Milk",
      "state" : "on"
    },
    "-Kv4xipRPvW5ejLTtosX" : {
      "category" : "Dairy",
      "foodname" : "Butter",
      "state" : "on"
    },
    "-Kv4xipS3lNBqYzknNhL" : {
      "category" : "Meat",
      "foodname" : "Chicken",
      "state" : "on"
    },
    "-Kv4xipTchrGh8D_lGmR" : {
      "category" : "Produce",
      "foodname" : "Strawberries",
      "state" : "on"
    }
  }
}

我有以下疑问:

getUserList(user): FirebaseListObservable<any> {

  console.log('firebase.auth().currentUser', user);

  return this.db.list('userlist' + '/' + user.uid, {
      query: {
        orderByChild:'category'
      }
    });
  }

类别由以下 HTML 显示:

<ion-item id="foodnames" *ngFor="let list of lists" (click)="additem(item)">
    {{list.category}}
</ion-item>

【问题讨论】:

  • 我对 firebase 很陌生,但我不相信它有办法从对象列表中提取唯一值。您可以在 observable 的末尾添加一个 rxjs .map() 函数以过滤掉类别
  • 您想从哪里删除重复项?从 api 调用中获取列表后?请详细说明

标签: javascript angular typescript firebase firebase-realtime-database


【解决方案1】:

在这种情况下,我猜你应该编辑你的数据库结构 像

{
  "Dairy":
  {
  "aePQkvozV6gehP7ihjN0OWCltKu2" : {
    "-Kv4xipPl0_2oztTMhaS" : {
       "foodname" : "Milk",
      "state" : "on"
    },
    "-Kv4xipRPvW5ejLTtosX" : {
       "foodname" : "Butter",
      "state" : "on"
    }}
    "Meat":{
    "-Kv4xipS3lNBqYzknNhL" : {
       "foodname" : "Chicken",
      "state" : "on"
    }}
}

现在您只能获取特定类别

【讨论】:

    猜你喜欢
    • 2022-11-04
    • 1970-01-01
    • 2018-12-08
    • 1970-01-01
    • 2017-07-02
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    • 2021-04-05
    相关资源
    最近更新 更多