Finalize Firebase Firestore Structure
chandansgowda opened this issue · 12 comments
Here is a basic idea of how we can structure the Firestore database. Let's discuss and come to a final structure before implementing the same.
We should also have clubID as an attribute in the spaces collection, like under which club this particular Space comes + Space creation timestamp + type of meeting(public or private) + tags(keywords)
@AntoTomAbraham
Do you mean something like RoomID (generated based on its specifications)?
@AntoTomAbraham Do you mean something like RoomID (generated based on its specifications)?
No, ClubID is different, a club refers to a group within the app that has a specific focus or theme and it would be made by users only, so here actually we need to give under which group this space comes. we can also have an option where people can host space independently without any club.
Yeahh @AntoTomAbraham . Seems right. Like club can be renamed as organizations ? If I'm not wrong ?
@chandansgowda Yes, that would be nice 👍
An Organisation table can have the following fields :
Name
Description
FounderID
CreationTime
Moderators
Followers
Hey @AntoTomAbraham
Using the fields you have suggested, how will the Firebase structure look like ?
@chandansgowda can't we include a field that would store the chat history of the room, in case they want to get back to it in the future?
Yeahh @Axhaat We will have to store that too if we are including chat option. But as of now, the main motto is to get the project up and running with atleast some main features. We can keep that for the future.
Where can we store user information? Like name, profilepic url etc? Should we do it on Firestore itself or realtime database ? I'm not sure if firestore uses more bandwidth than realtime database. Do you guys have any idea about it ?
@chandansgowda As cited in this link, offline persistence is enabled by default in Firestore database for Android and iOS. Thus, Firestore is fundamentally more bandwidth-saving as compared to Realtime Database.
This issue is no longer needed since we have migrated our project from Firebase to Appwrite.