Jav*_* H. 9 firebase firebase-realtime-database
我正在使用Firebase数据库来存储游戏的分数.一切正常,直到我决定实施"每周分数".
为了能够按分数过滤然后按周排序,我将数据存储在以下结构中:
game_scores-weekly
2018-01-29
user_id: { score, date, bla, bla bla}
user_id: { score, date, bla, bla bla}
user_id: { score, date, bla, bla bla}
2018-02-05
user_id: { score, date, bla, bla bla}
user_id: { score, date, bla, bla bla}
Run Code Online (Sandbox Code Playgroud)
所以,这个工作得很好,但是由于没有索引"game_scores-weekly/new_week"indexOn"得分",我每个新周都会因为性能问题而得到令人讨厌的警告.手动添加索引有效...直到下周,所以不是一个选项.
"game_scores-weekly": {
"2018-02-19": {
".indexOn": ["score", "uid"]
},
"2018-02-12": {
".indexOn": ["score", "uid"]
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在日期中以某种方式指定通配符,所以它适用于任何新的日期?或者我可以每周以编程方式创建新索引,还是有任何其他我可能没想过的解决方案?
另外,考虑手动创建一年中所有星期的列表并一次性添加它,但可能是一个限制?
最后,但并非最不重要的是,我只对目前的一周和上周的分数感兴趣,任何年龄较大的我都希望保留它以获得一些历史数据,但我不会在游戏中查询,所以可能会摆脱旧周的指数.
干杯!
感谢@Tristan指出我正确的方向.
我使用以下代码来定义索引,现在警告消失了:
"game_scores-weekly": {
"$date": {
".indexOn": ["score", "uid"]
}
}
Run Code Online (Sandbox Code Playgroud)
现在看起来非常明显,但在文档中找不到任何明确的内容.
请注意,$date实际上可能是任何名称,似乎您可以使用any指定变量值$identifier.
| 归档时间: |
|
| 查看次数: |
591 次 |
| 最近记录: |