首页 > 解决方案 > Firebase Android 显示和修改每个用户的元素

问题描述

我正在使用 Firebase 制作这个 android 应用程序,其中我有一些书,每个用户用户都可以将它们设置为已读或正在阅读。

我不知道该怎么做,因为 Firebase 是 noSQL 并且实体之间没有关系。

有这三个活动:在第一个中,用户可以看到所有书籍并最终将其中一本书设置为已读或正在阅读,在第二个中,只有被标记为已阅读的书籍,在第三个中,被标记为正在阅读的书籍。

它们必须分开,每个用户都有自己的。

如何使用 Firebase 实时数据库和存储来做到这一点?

标签: androidfirebasefirebase-realtime-databaserelation

解决方案


我可能会为您拥有的两种类型创建两个顶级节点:

  1. 用户
  2. 图书

然后为它们之间的关系创建两个额外的顶级节点:

  1. UserBooks - 这是我们将每个用户与他们的书籍联系起来并跟踪他们的阅读状态的地方。
  2. BookUsers - 将每本书与用户联系起来。仅当您想向用户展示特定书籍时才需要它,但我通常建议立即添加它。

所以像这样的简单模型可能如下所示:

Users: {
  "uidOfFio": { ... },
  "uidOfPuf": { ... }
},
Books: {
  "idOfBook1": { ... },
  "idOfBook2": { ... }
},
UserBooks: {
  "uidOfFio": {
    "idOfBook1": "Read",
    "idOfBook2": "Reading"
  },
  "uidOfPuf": {
    "idOfBook1": "Reading",
  }
},
BookUsers: {
  "idOfBook1": {
    "uidOfFio": "Read",
    "uidOfPuf": "Reading"
  },
  "idOfBook2": {
    "uidOfFio": "Reading"
  },
}

有关这方面的更多信息,我建议阅读:


推荐阅读