48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# Estrutura de Dados e Firebase - Cuida+
|
|
|
|
Este documento documenta como a aplicação utiliza o Firebase para armazenamento e autenticação.
|
|
|
|
## 1. Firebase Authentication
|
|
- **Métodos:** Email e Password.
|
|
- **Identificação:** O `UID` do utilizador é usado como chave estrangeira em todas as coleções do Firestore para garantir a privacidade dos dados.
|
|
|
|
## 2. Cloud Firestore (Bancos de Dados NoSQL)
|
|
A aplicação utiliza as seguintes coleções principais:
|
|
|
|
### 👤 Coleção: `utilizadores`
|
|
Guarda o perfil do utilizador.
|
|
- **Campos:** `name`, `email`, `profilePictureUri`, `phone`.
|
|
- **Chave:** UID do Firebase Auth.
|
|
|
|
### 💊 Coleção: `medicamentos`
|
|
Guarda a lista de remédios de cada utilizador.
|
|
- **Campos:**
|
|
- `name`: Nome do fármaco.
|
|
- `time`: String com horários (ex: "08:00, 22:00").
|
|
- `dosage`: Via de administração (ex: "Via Oral").
|
|
- `notes`: Notas adicionais.
|
|
- `isTaken`: Boolean (estado atual).
|
|
- `userId`: UID do proprietário.
|
|
|
|
### 📅 Coleção: `appointments`
|
|
Guarda as marcações de consultas.
|
|
- **Campos:** `doctorName`, `date`, `time`, `description`, `userId`.
|
|
|
|
### 👨⚕️ Coleção: `medicos`
|
|
Lista de profissionais disponíveis para agendamento.
|
|
- **Campos:** `name`, `specialty`, `role` (deve ser 'medico').
|
|
|
|
## 3. Realtime Database
|
|
Utilizado especificamente para a funcionalidade de **Autocomplete / Pesquisa de Medicamentos**.
|
|
- **Nó:** `medication` ou `medicamentos`.
|
|
- **Conteúdo:** Lista global com milhares de nomes de medicamentos para sugestão rápida durante a escrita (sem necessidade de carregar do Firestore para poupar custos e ganhar velocidade).
|
|
|
|
## 4. Segurança (Regras Sugeridas)
|
|
Para garantir que um utilizador não vê os dados de outro, as regras do Firestore devem ser configuradas como:
|
|
```javascript
|
|
allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;
|
|
```
|
|
|
|
---
|
|
*Documentação de Base de Dados - Cuida+*
|