Skip to content

Firestore database schema

Benjamin Petetot edited this page Feb 23, 2018 · 10 revisions

/users/{uid}

collection of conference hall users

name type description
uid string from firebase authentication
email string from firebase authentication
displayName string from firebase authentication
photoURL string from firebase authentication
company string
city string
language string
phone string
bio string
twitter string
github string
updateTimestamp Date update date
createTimestamp Date creation date

/talks/{id}

collection of conference hall talks

name type description
id string generated id
title string
abstract string
references string
level string beginner, intermediate or advanced
references string
owner string user document id of the owner
speakers object { [user-id]: bool, ... } with user document id of speakers to true
submissions object { [event-id]: <object>, ... } with event document id submited to talk state in event
updateTimestamp Date update date
createTimestamp Date creation date

/events/{id}

collection of conference hall events

name type description
id string generated id
name string
description string
type string meetup or conference
address string
website string
conferenceDates object { start: <Date>, end: <Date> }
cfpOpened boolean only for type 'meetup'
cfpDates object only for type 'conference'
{ start: <Date>, end: <Date> }
deliberationDate Date only for type 'conference'
categories array [{ id: <string>, name: <string>, description: <string>}]
formats array [{ id: <string>, name: <string>, description: <string>}]
owner string user document id of the owner
updateTimestamp Date update date
createTimestamp Date creation date

/events/{id}/proposals/{id}

collection of proposals of the event
/proposals/{id} is the talk id

name type description
id string talk id
status string submitted, accepted, rejected or backup
formats string
categories string
message string
rating number average rating of all ratings
...copy of the talk All fields of the submitted talk (copy)
updateTimestamp Date update date
createTimestamp Date creation date

/events/{id}/proposals/{id}/ratings/{uid}

collection of proposals ratings by users

name type description
uid string user id
rating number rating between 0 and 5
feeling string feeling about : neutral, hate, love
updateTimestamp Date update date