【问题标题】:How do I design Realtime Database in Firebase to scale?如何在 Firebase 中设计实时数据库以进行扩展?
【发布时间】:2021-09-18 10:31:50
【问题描述】:

他们在 Firebase 文档中为数据组织提供了以下示例。 当最终有 10,000 个用户注册时会发生什么,但我决定添加另一个组?您必须编写一些内容来添加该组,每个现有用户都附加到该组,并将每个现有用户添加到新的组条目?对吗?

// An index to track Ada's memberships
{
  "users": {
  "alovelace": {
  "name": "Ada Lovelace",
  // Index Ada's groups in her profile
  "groups": {
     // the value here doesn't matter, just that the key exists
     "techpioneers": true,
     "womentechmakers": true
  }
},
...
},
"groups": {
  "techpioneers": {
    "name": "Historical Tech Pioneers",
    "members": {
      "alovelace": true,
      "ghopper": true,
      "eclarke": true
    }  
},
...

我正在使用 React-Native 构建一个小游戏,并将 Firebase 中的实时数据库用于我的数据库。我正在构建一个自定义部分,用户可以在其中购买以解锁更多自定义项。如果他们购买了一个项目,它将设置 effect/{purchasedId}/members/{uid}/({isPurchased:true}) ,然后将在我的 CustomizedSection 中显示 getCustomizablesForUserByUserId。

如果我想添加更多效果,我是否只需要添加一个新效果并将每个成员 ID 附加到它上面?

谢谢!

【问题讨论】:

  • 由于我想获取每个用户购买的效果列表,我决定重组为 purchaseEffects > userId>> e1:true , e2 :true e3:true 等以便更容易检索.然后我将跟踪在 User> slectedEffect>>e3:true 中选择的。我原来的缩放问题仍然存在

标签: database firebase react-native firebase-realtime-database in-app-purchase


【解决方案1】:

如果最终有 10,000 名用户注册,但我决定添加另一个组,会发生什么情况?您必须编写一些内容来添加该组,每个现有用户都附加到该组,并将每个现有用户添加到新的组条目?对吗?

确实是这样。这个过程称为回填,在使用无模式 NoSQL 数据库时是一个正常的(有时是相当大的)问题。

【讨论】:

  • 只要是正常的。谢谢!
猜你喜欢
  • 2020-05-07
  • 1970-01-01
  • 1970-01-01
  • 2013-11-28
  • 2021-12-22
  • 2019-01-06
  • 2013-12-10
  • 1970-01-01
  • 2020-01-07
相关资源
最近更新 更多