“Firebase”;。indexOn“;困难
尝试按照之前的一些答案进行操作,但这些答案不起作用。 我的数据如下所示:“Firebase”;。indexOn“;困难,firebase,firebase-realtime-database,firebase-security,Firebase,Firebase Realtime Database,Firebase Security,尝试按照之前的一些答案进行操作,但这些答案不起作用。 我的数据如下所示: "Test" : { "1d68e78d87bbdd5e9e4141b54765eac9" : { "Test" : "true", "num" : 0, "timestamp" : "2017-12-26T17:04:00.874Z" }, "59e265ed2145425bd7660488120d69c6" : { "Test" : "true", "num" : 2
"Test" : {
"1d68e78d87bbdd5e9e4141b54765eac9" : {
"Test" : "true",
"num" : 0,
"timestamp" : "2017-12-26T17:04:00.874Z"
},
"59e265ed2145425bd7660488120d69c6" : {
"Test" : "true",
"num" : 2,
"timestamp" : "2017-12-26T17:29:32.807Z"
},
"aa7b4143099985cf2b2a7e31d91d6fb6" : {
"Test" : "true",
"num" : 1,
"timestamp" : "2017-12-26T17:06:08.238Z"
}
}
我试图先通过'num'或可能的'timestamp'为我的应用程序测试这两种排序。因此,我的研究让我得出了这些规则,它们似乎根本不适合我:
"rules":{
".read": "true",
".write": "true",
"Test": {
".indexOn": ["num","timestamp"]
}
}
据我所知,测试仍然是按散列排序的。深入研究也不会产生任何效果,例如:
"rules":{
".read": "true",
".write": "true",
"Test": {
"$hash": {
".indexOn": ["num","timestamp"]
}
}
}
您如何验证排序?您正在执行的查询在哪里?Firebase控制台中的数据不会自行重新排序。indexOn只允许您更快地查询这些子值。发布查询和快照的代码returned@DoesData我相信你是对的。我在REST中通过执行GET来测试它,我假设数据将按索引排序。使用:Test.json?orderBy=\“num\”&limitToFirst=2进行测试,我能够通过索引限制我的数据(这是我想用firebase测试的),在从中删除“num”后也执行相同的调用。indexOn会导致一个错误,这是验证数据是否已被索引的一种迂回方式。是否需要/建议使用firebase admin来测试您的数据结构?firebase控制台可以测试您的规则,但无法测试您的结构,因为对结构确实没有任何要求;它们是一组父节点和子节点,不必符合任何特定的准则。