2017-10-17 7 views
2

Echtzeit x Firestore-DatenbankstrukturStructure Database Firestor Beiträge

Systemaufbau Beiträge in Echtzeit:

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 

Beitrag Systemmodell in Echtzeit. Um in den Firestor zu strukturieren, könnte es etwa so aussehen:

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

Von dem, was ich verstehe, in Firestor die Zwänge der Sammlungen hat, denn wenn sie auf die gleiche Struktur von Echtzeit konvertieren, wäre es nicht da arbeitet wir können habe keine zwei Sammlungen wie: mDB.collection ("Posts"). collection().

Was ist der beste Weg, um ein Buchungssystem zwischen Benutzern zu strukturieren?

Vielen Dank !!

Antwort

1

Sie haben Recht, dass Sie in Cloud Firestore zwischen Dokumenten und Sammlungen wechseln müssen, aber ich glaube nicht, dass dies ein Problem für Ihre Datenstruktur darstellt.

Zum Beispiel könnten Sie haben:

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

So die Beiträge alle für einen Benutzer bekommen Sie tun können:

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

// OR 

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

Da Cloud-Firestore hat auch eine schnelle und leistungsfähige Abfragen, können Sie auch speichern Sie alle Ihre Beiträge in einem Top-Level-posts Sammlung und Speicherung UserId als Eigenschaft des Post:

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

Und dann, um alle Beiträge für einen Benutzer zu erhalten, könnten Sie tun:

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