结构数据库Firestore帖子

时间:2017-10-17 17:23:01

标签: android firebase google-cloud-firestore

Real Time x Firestore数据库结构

实时系统结构帖子:

Posts
--ID_USER_1
----IdPost1
------Date
------Image
---IdPost2
------Date
------Image
---IdPost3
------Date
------Image
--ID_USER_2
----IdPost1
------Date
------Image
---IdPost2
------Date
------Image
---IdPost3
------Date
------Image

在RealTime中发布系统模型。要在Firestore中构建,它可能看起来像这样:

Post
--ID_POST1
----Id_user1
----Image
--ID_POST2
----Id_user2
----Image

根据我在Firestore中的理解,它具有集合的约束,因为当转换为相同的Real Time结构时,它不起作用,因为我们不能有两个集合,如: mDB.collection(“Posts”) .collection()。

在用户之间构建发布系统的最佳方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:3)

您是正确的,在Cloud Firestore中,您必须在文档和集合之间进行切换,但我认为这不会对您的数据结构造成影响。

例如,您可以:

db.collection('posts').doc('user1234').collection('posts').get()

// OR

db.collection('posts/user1234/posts').get()

为了获得用户的所有帖子,您可以这样做:

posts

由于Cloud Firestore还具有快速而强大的查询功能,您还可以将所有帖子存储在一个顶级UserId集合中,并将 - `posts` [collection] - `ID_POST_1` [document] - `UserId` [field] - `Date` [field] - `Image` [field] - `ID_POST_2` [document] - `UserId` [field] - `Date` [field] - `Image` [field] 存储为帖子的属性:

db.collection('posts').where('UserId', '==', 'user1234')

然后获取您可以执行的所有帖子:

Videos = fs.readFileSync("public/toc_vd_en.json", "utf8");