我的Angular2应用中有一组带有一组标签的Firebase列表。我正在寻找一种方法用“Tag1”返回所有图像。这是否可以使用sort_by
函数?
let arrayOfElements =
[
{
"name": "a",
"subElements":
[
{0: "Tag1"},
{1: "Tag2"}
]
},
{
"name": "a",
"subElements":
[
{0: "Tag1"},
{1: "Tag3"}
]
}
];
答案 0 :(得分:3)
现在你需要坐下来思考这个,为什么?原因是你在firebase中遇到了一个典型的问题....回答这个问题:
arrayOfElements
可以是无限的吗? arrayOfElements
尺寸可以小于100(例如)? 为什么你需要回答这个问题?假设你有一个数组的10.000个项目(或无限项目)如果你使用orderByChild("0").equalTo("Tag1")
firebase数据库需要读取所有项目来查找项目有“Tag1”,那么你的app /网络需要更多时间和数据才能获得此查询的结果,然后我们需要开始讨论规范化firebase数据库,现在是时候创建索引,你可以看到我昨天解释的post。
如果您在第二个问题中的答案是是,那么您可以使用此命令获取值orderByChild("0").equalTo("Tag1")
,因为消耗的数据和浪费的时间太少其他情况......您可以解决此问题在firebase数据库规则上添加indexOn()
。分析您的数据库并确定最佳选择。
<强>更新强>
关于你的评论......如果你没有身份证或者不需要firebase unique id这个最好的表格,对我来说就是这个:
arrayOfElements{
tag1:"true",
tag2:"true"
}
只需将密钥作为值。
如果我帮助了你并且编程很好,请告诉我!