ja meti o droplist nos medicamentos
This commit is contained in:
47
documentacao_projecto/base_de_dados_firebase.md
Normal file
47
documentacao_projecto/base_de_dados_firebase.md
Normal file
@@ -0,0 +1,47 @@
|
||||
# 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+*
|
||||
Reference in New Issue
Block a user