Firebase数据量和性能问题

时间:2017-09-07 14:03:39

标签: firebase unity3d firebase-realtime-database nosql

我正在使用Unity和Firebase为平板电脑创建应用程序(游戏)。

游戏由玩家可以做的不同类型的练习组成。每种类型的练习有七个级别,每个级别有四个练习。在练习中,有一个随机问题和五个不同的答案,其中一个答案是正确的。

请参阅此模型以供参考: enter image description here

此应用/游戏的主要业务要求之一是能够根据玩家提供的答案创建报告。应每月创建这些报告(基于锻炼类型):

  • 每个答案的玩家进度
  • 玩家平均每个级别的进度
  • 与同龄的其他玩家相比,每个答案的玩家都有进步
  • 与同龄的其他玩家相比,每个级别的玩家平均进度
  • 球员的成功率基于一天的时间(即:这个球员的成功率在早上08.00更好?)
  • 基于性别/年龄的玩家模式(即:3岁男性玩家成功率在特定问题上是好的)
  • 等..

目前,我正在存储玩家正在制作的每个答案。他/她的年龄,性别,尝试的日期/时间,运动的类型,哪个级别,哪个运动,问题的别名,提供的答案的别名,答案是对还是错,以及球员的唯一关键。

这最终出现在一个JSON对象中:

{
    "exerciseType": "humanBody",
    "level": 1,
    "exercise": 2,
    "questionAlias": "lungsQuestion",
    "answerAlias": "brainAnswer",
    "isCorrect": false,
    "playerKey": "firebasePlayerKey",
    "playerAge": 6,
    "playerGender": "F",
    "answerDateTimeUnix": "unix timestamp here",
    "age_gender_exerciseType_level_exercise": "query field for querying Firebase on multiple parameters.."
    // more query fields to match report criterias?
}

我对此的担忧是制作报告/图表的查询数据量和性能。当有超过700,000名儿童玩这个游戏并且我存储了每个提供的答案时,这将产生 很多 数据。这么多,我不确定它是否是正确的方法。

所以,问题是:由于Firebase中存储了大量实时数据,这种扁平结构是否过于通用而根本不具备高性能?我可以选择一个结构,每个答案都存储在练习类型的JSON对象下,即:" humanBody"。所以我只是"只有"需要查询该特定练习类型下的数据,而不是查询aginst 所有答案。

还有其他办法吗?或者Firebase根本不是这项工作的正确工具?

非常感谢任何帮助/提示。

提前致谢。

0 个答案:

没有答案