我正在学习并试图了解如何针对我的用例优化我的FireBase数据库。
查看下面的代码:让我们说US/STREET_ADDRESS
推送了1.5亿条(美国的街道地址数),我想对"path":
键进行排序,因为它所有地址的唯一标识符。在回应时间时,这里的表现会怎样?如果关于我的问题的此设置不可取,我如何更改US/STREET_ADDRESS
?
阅读fan-out,但不要因为没有多帽或其他任何东西而认为我需要它。在我的情况下,我只是想创建一个数据库,无论出于何种原因,它都可以在所有街道地址之间进行操作。
我是否应该对US/STREET_ADDRESS
进行更正规化,例如将1000万个条目拆分为US/A/STREET_ADDRESS
,US/B/STREET_ADDRESS
和US/C/STREET_ADDRESS
。这可以完成,因为下面示例代码中的"path": "US/California/Orange County/3138 E Maple Ave"
是唯一的,甚至可以用作密钥而不是Firebase postsRef.push()
自动密钥,此代码示例使用此密钥。但仍然会有1亿
{
"AE": {
"name": "United Arab Emirates"
},
"GB": {
"name": "United Kingdom"
},
"US": {
"name": "United States",
"STREET_ADDRESS": {
"-KUxrqYlItjme2v1I_W5": {
"id": "hjg86-tg33-8hu4-yh5u",
"path": "US/California/Orange County/3138 E Maple Ave"
},
"-KUJHjj7HG5gGHNNJ_T5": {
"id": "ds86-tg12-7eu4-juw3",
"path": "US/Florida/Tampa/104 Biscayne Ave"
}
}
},
"CH": {
"name": "Switzerland"
},
"SY": {
"name": "Syrian Arab Republic"
},
"TW": {
"name": "Taiwan"
},
"TJ": {
"name": "Tajikistan"
},
"TZ": {
"name": "Tanzania, United Republic of"
},
"TH": {
"name": "Thailand"
}
}