Files
cuidamais/documentacao_projecto/base_de_dados_firebase.md

1.9 KiB

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:

allow read, write: if request.auth != null && request.auth.uid == resource.data.userId;

Documentação de Base de Dados - Cuida+