android - Firebase Android 显示和修改每个用户的元素
问题描述
我正在使用 Firebase 制作这个 android 应用程序,其中我有一些书,每个用户用户都可以将它们设置为已读或正在阅读。
我不知道该怎么做,因为 Firebase 是 noSQL 并且实体之间没有关系。
有这三个活动:在第一个中,用户可以看到所有书籍并最终将其中一本书设置为已读或正在阅读,在第二个中,只有被标记为已阅读的书籍,在第三个中,被标记为正在阅读的书籍。
它们必须分开,每个用户都有自己的。
如何使用 Firebase 实时数据库和存储来做到这一点?
解决方案
我可能会为您拥有的两种类型创建两个顶级节点:
- 用户
- 图书
然后为它们之间的关系创建两个额外的顶级节点:
- UserBooks - 这是我们将每个用户与他们的书籍联系起来并跟踪他们的阅读状态的地方。
- 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"
},
}
有关这方面的更多信息,我建议阅读:
推荐阅读
- amazon-web-services - 尝试传递动态变量时,值不是 Object 的成员
- apache-kafka - 为什么kafka消费者轮询经纪人?
- oop - 在这个类图中违反了哪条 SOLID 原则
- excel - Excel VBA:出错时转到值指向的行号
- tensorflow - PyTorch 是否有用于批处理规范的后向矩参数?
- google-sheets - 如何从范围更新时创建一个下拉列表?
- cookies - 将cookie插入get请求python
- javascript - 如何在 Google Sheets Apps 脚本 CSV 导入中保留现有格式
- linq - 使用左联接和分组依据重写和/或优化 EF Core 查询
- amazon-web-services - 如何获取 aws lookout 指标的异常组 ID?