The database we currently use is Firebase Firestore.
There are following collections:
Key: id
- type: string, (chat|request|offer|donation|place)
- title
- description
- author: uid
- created: ISO timestamp
- updated: ISO timestamp
- loc: Firestore GeoPoint
- valid_until: ISO timestamp
Key: uid
- name: string
- created: ISO timestamp
- updated: ISO timestamp
key: id
- object_id: string, key from objects
- created: ISO timestamp
- author: uid
- comment: string
key: id
- object_id: string, key from objects
- created: ISO timestamp
- author: uid
- vote: number, currently only +1
key: ${uid1}_${uid2}
, uid1 < uid2 lexicographically
- created: ISO timestamp
- lastMsgId: string
- lastReadBy: object, {uid: msgId}
- members: array, [uid1, uid2]
key: id
- author: uid
- content: string
- timestamp: ISO string
key: id
- origin: string, 3rd party app id like my-cool-app
- token: string
- revoked: boolean