考虑 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/