问题描述
我正在使用Firebase制作此android应用,其中有一些书,每个用户都可以将其设置为已读或正在读。
我不知道该怎么做,因为Firebase是noSQL,并且实体之间没有关系。
这三个活动:在第一个活动中,用户可以看到所有书籍,并最终将其中一个书籍设置为已读或阅读;在第二个活动中,只有标记为广告阅读的书籍,而在第三个活动中,标记为阅读的书籍。 / p>
它们必须分开,每个用户都有自己的。
如何使用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"
},}
有关此的更多信息,我建议阅读: