我正在开发一个使用flutter
和Firebase
来存储数据的游戏保护程序应用程序。
实际上我的Firebase
数据库如下所示:
games:{<br>
// Team 1<br>
player1: (reference to a player),<br>
player2: (reference to a player)',<br>
// Team 2<br>
player3: (reference to a player),<br>
player4: (reference to a player),<br>
scoreTeam1: 2,<br>
scoreTeam2: 1<br>
}<br>
// Usergames documents are indexed by the player unique ID as a key<br>
userGames: {<br>
count: 2, //this variable is increased every time i add a new game<br>
game1: (reference to a game),<br>
game2: (reference to another game),<br>
...<br>
gameN: (another reference)<br>
}<br>
Player:{<br>
name: 'player name'<br>
...(another player data)<br>
}<br>
通过此实现,用户游戏文档每次都会有更多的字段。我的问题是文档可以包含的字段数量是否有限制。我也想保存很多游戏,这是实现数据库的正确方法吗?
Firebase 的使用限制可以在这里找到:
https://cloud.google.com/firestore/quotas#collections_documents_and_fields
从该页面开始,字段数量没有限制。但是,单个文档的最大大小为 1MiB。
我会考虑使用子集合来存储游戏结果,而不是向文档添加越来越多的字段。
您可以看到Firebase对此进行了限制:https://firebase.google.com/docs/database/usage/limits?authuser=0
至于数据库结构,我建议您将一般结构分解为实体,并存储它们,对于更复杂的对象,存储对这些实体的引用(id(。
关于游戏的数量(( - 它们可以在读取分支时获得,如dataSnaphot.childrenCount。