2017-10-17 132 views
2

實時X公司的FireStore數據庫結構結構數據庫公司的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 

郵政系統模型。要在公司的FireStore結構中,它可能是這個樣子:

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

從我在公司的FireStore明白有收藏的制約,因爲轉換成實時的相同的結構時,它不會因爲我們可以工作沒有兩個集合,例如:mDB.collection(「Posts」)。collection()。

在用戶之間構建發佈系統的最佳方式是什麼?

謝謝!

回答

1

在Cloud Firestore中,您必須在文檔和集合之間進行切換,但我不相信這會對您的數據結構造成問題。

例如,你可以有:

- `posts` [collection] 
    - `ID_USER_1` [document] 
     - `posts` [subcollection] 
     - `ID_POST_1` [document] 
      - `Date` [field] 
      - `Image` [field] 
     - `ID_POST_2` [document] 
      - `Date` [field] 
      - `Image` [field] 

所以讓所有的用戶,你可以做的文章:

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

// OR 

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

由於雲計算公司的FireStore也有快速和強大的查詢,你也可以將您的所有帖子存儲在一個頂級posts收藏和存儲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')