Javascript 我怎样才能按孩子的孩子点菜?如果不可能,我有什么选择?
我正在处理的数据的基本结构是:Javascript 我怎样才能按孩子的孩子点菜?如果不可能,我有什么选择?,javascript,firebase,firebase-realtime-database,Javascript,Firebase,Firebase Realtime Database,我正在处理的数据的基本结构是: Claims: { "6B7CBFB4-16EA" : { "E4A5DB45-C1DE" : { "ID" : 3, "Store" : "Staples" } } 我还在此firebase上设置了一些示例数据以及一个JSFIDLE 我希望能够通过ID或商店订购 前两个级别是随机生成的标识符。目前正在做的是,我们正在检索Claims ref下的所有数据,然后在客户端对其进行排序,但随着应用程序的增长,这变得太多,
Claims: {
"6B7CBFB4-16EA" : {
"E4A5DB45-C1DE" : {
"ID" : 3,
"Store" : "Staples"
}
}
我还在此firebase上设置了一些示例数据以及一个JSFIDLE
我希望能够通过ID或商店订购
前两个级别是随机生成的标识符。目前正在做的是,我们正在检索Claims ref下的所有数据,然后在客户端对其进行排序,但随着应用程序的增长,这变得太多,因此我们需要在服务器端对其进行排序和限制
如果这是不可能的,而我只能在Child上查询,那么什么是使我的数据平坦化的最佳方法?这将出现在一个大型生产应用程序上,因此将有大量数据需要移动。Firebase是否提供了一种简单的方法来实现这一点?在Firebase数据库API中无法对动态孙子的属性进行排序。这意味着您必须修改数据结构,以匹配应用程序访问数据的方式 一种方法是将孙子孙女存储在他们的ID下,而不是您现在使用的密钥:
Claims: {
"6B7CBFB4-16EA" : {
"ID_3" : {
"Key": "E4A5DB45-C1DE"
"Store" : "Staples"
}
}
如果您需要通过自己的密钥和ID获取数据,则可以在每个声明下存储一个小索引,以允许查找:
Claims: {
"6B7CBFB4-16EA" : {
"Key_E4A5DB45-C1DE": {
"ID": 3
"Store" : "Staples"
},
"keysByID": {
"3" : {
"Key": "E4A5DB45-C1DE"
}
},
"keysByStore": {
"Staples": {
"Key": "E4A5DB45-C1DE"
}
}
}
无法在Firebase数据库API中对动态孙子的属性进行排序。这意味着您必须修改数据结构,以匹配应用程序访问数据的方式 一种方法是将孙子孙女存储在他们的ID下,而不是您现在使用的密钥:
Claims: {
"6B7CBFB4-16EA" : {
"ID_3" : {
"Key": "E4A5DB45-C1DE"
"Store" : "Staples"
}
}
如果您需要通过自己的密钥和ID获取数据,则可以在每个声明下存储一个小索引,以允许查找:
Claims: {
"6B7CBFB4-16EA" : {
"Key_E4A5DB45-C1DE": {
"ID": 3
"Store" : "Staples"
},
"keysByID": {
"3" : {
"Key": "E4A5DB45-C1DE"
}
},
"keysByStore": {
"Staples": {
"Key": "E4A5DB45-C1DE"
}
}
}