angularjs - 是否可以在 firebase 中获取唯一值的数组?

标签 angularjs firebase firebase-realtime-database angularfire

考虑 Firebase 中存储的以下数据:

{
  "beers": {
    "-jwhkclclmecl": {
      "name": "Two Hearted Ale",
      "type": "IPA",
      "brewery": "Bells"
    },
    "-ckqjheh292od": {
      "name": "Dirty Blonde Ale",
      "type": "Pale Wheat",
      "brewery": "Atwater"
    },
    "-hcwiu3cp902d": {
      "name": "Diabolical",
      "type": "IPA",
      "brewery": "North Peak"
    }
  }
}

是否可以为 Firebase 构建查询以返回子节点之一的唯一值的数组。例如返回 ["IPA", "Pale Wheat"]

最佳答案

不可以,您无法在集合中查询每个项目的特定属性的唯一值。您可以过滤此类值,例如 ref.child('beers').orderByChild('type').equalTo('IPA')。但这不是你问的。 :-)

通常,如果您希望在 Firebase(或大多数其他 NoSQL 数据库)中执行此类操作,您可以将项目(或对项目的引用)保留在一个组下:

{
  "beer_types": {
    "IPA": {
      "-jwhkclclmecl": {
        "name": "Two Hearted Ale",
        "brewery": "Bells"
      },
      "-hcwiu3cp902d": {
        "name": "Diabolical",
        "brewery": "North Peak"
      }
    },
    "Pale Wheat": {
      "-ckqjheh292od": {
        "name": "Dirty Blonde Ale",
        "brewery": "Atwater"
      },
    }
  }
}

当然,只有当您只想将它​​们保留在一个类别中时,这才有效。如果您想要多个类别,您可以在多个类别下存储对每个项目的引用:

{
  "beers": {
    "-jwhkclclmecl": {
      "name": "Two Hearted Ale",
      "type": "IPA",
      "brewery": "Bells"
    },
    "-ckqjheh292od": {
      "name": "Dirty Blonde Ale",
      "type": "Pale Wheat",
      "brewery": "Atwater"
    },
    "-hcwiu3cp902d": {
      "name": "Diabolical",
      "type": "IPA",
      "brewery": "North Peak"
    }
  }
  "beer_types": {
    "IPA": {
      "-jwhkclclmecl": true,
      "-hcwiu3cp902d": true
    },
    "Pale Wheat": {
      "-ckqjheh292od": true
    }
  },
  "breweries": {
    "Bells": {
      "-jwhkclclmecl": true
    },
    "Atwater": {
      "-ckqjheh292od": true
    }
    "North Peak": {
      "-hcwiu3cp902d": true
    }
  }
}

关于angularjs - 是否可以在 firebase 中获取唯一值的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32621706/

相关文章:

javascript - 将 HTML 表单转换为 Angular POST 请求

javascript - 安装 Angular Material, "Failed to instantiate module ngMaterial"即使我使用的是 angular 版本 1.3.0

Javascript多维数组错误

android - 如何将新闻文章/评论与 Firebase 集成?

javascript - TimelineJs 和 AngularJs ng-查看内容

android - 尝试注册用户时出现错误

firebase - fcm xmpp 协议(protocol) "delivery_receipt_requested"参数

android - Firebase endAt() 不适用于日期字符串?

javascript - 是否可以在 Firebase 中使用动态查询?

swift - Firebase swift 4 : iterate through observe results