... | @@ -22,6 +22,7 @@ Nesta documentação, vamos explorar a estrutura do banco de dados Firebase, jun |
... | @@ -22,6 +22,7 @@ Nesta documentação, vamos explorar a estrutura do banco de dados Firebase, jun |
|
|
|
|
|
O Firebase Realtime Database organiza os dados em uma estrutura de árvore, onde cada nó é identificado por uma chave exclusiva. Os nós podem conter outros nós e/ou valores primitivos.
|
|
O Firebase Realtime Database organiza os dados em uma estrutura de árvore, onde cada nó é identificado por uma chave exclusiva. Os nós podem conter outros nós e/ou valores primitivos.
|
|
|
|
|
|
|
|
# **Estrutura da Árvore de Dados**
|
|
````
|
|
````
|
|
/users
|
|
/users
|
|
/<user_id>
|
|
/<user_id>
|
... | @@ -41,32 +42,94 @@ O Firebase Realtime Database organiza os dados em uma estrutura de árvore, onde |
... | @@ -41,32 +42,94 @@ O Firebase Realtime Database organiza os dados em uma estrutura de árvore, onde |
|
|
|
|
|
Na estrutura acima, temos um nó raiz chamado users, que contém nós filhos identificados por IDs de usuário (<user_id>). Cada nó de usuário possui os seguintes atributos:
|
|
Na estrutura acima, temos um nó raiz chamado users, que contém nós filhos identificados por IDs de usuário (<user_id>). Cada nó de usuário possui os seguintes atributos:
|
|
|
|
|
|
*name: O nome do usuário (String).
|
|
* name: O nome do usuário (String).
|
|
*notificationTime: O horário de notificação do usuário (int).
|
|
* notificationTime: O horário de notificação do usuário (int).
|
|
*dailyGoal: A meta diária do usuário (int).
|
|
* dailyGoal: A meta diária do usuário (int).
|
|
*objectives: Um nó que armazena os objetivos do usuário.
|
|
* objectives: Um nó que armazena os objetivos do usuário.
|
|
*phrases: Um nó que armazena as frases do usuário.
|
|
* phrases: Um nó que armazena as frases do usuário.
|
|
|
|
|
|
Dentro do nó objectives, encontramos nós identificados por IDs de objetivo (<objective_id>). Cada nó de objetivo possui os seguintes atributos:
|
|
Dentro do nó objectives, encontramos nós identificados por IDs de objetivo (<objective_id>). Cada nó de objetivo possui os seguintes atributos:
|
|
|
|
|
|
*name: O nome do objetivo (String).
|
|
* name: O nome do objetivo (String).
|
|
*phrases: Um nó que armazena as frases relacionadas ao objetivo.
|
|
* phrases: Um nó que armazena as frases relacionadas ao objetivo.
|
|
|
|
|
|
Dentro do nó phrases, encontramos nós identificados por IDs de frase (<phrase_id>). Cada nó de frase possui o seguinte atributo:
|
|
Dentro do nó phrases, encontramos nós identificados por IDs de frase (<phrase_id>). Cada nó de frase possui o seguinte atributo:
|
|
|
|
|
|
*text: O texto da frase (String).
|
|
* text: O texto da frase (String).
|
|
|
|
|
|
## **Schemas das Coleções**
|
|
## **Schemas das Coleções**
|
|
|
|
|
|
A seguir, apresentamos os schemas das classes 'Objective' e 'User' em Dart, que representam a estrutura de dados mencionada acima.
|
|
A seguir, apresentamos os schemas das classes 'Objective' e 'User' em Dart, que representam a estrutura de dados mencionada acima.
|
|
|
|
|
|
|
|
|
|
|
|
*Objective*
|
|
|
|
```
|
|
|
|
class Objective {
|
|
|
|
String name;
|
|
|
|
List<Phrase> phrases;
|
|
|
|
|
|
|
|
Objective({required this.name, required this.phrases});
|
|
|
|
|
|
- [Collection](#collections)
|
|
Map<String, dynamic> toJson() {
|
|
|
|
List phrasesJson = phrases.map((e) => e.toJson()).toList();
|
|
|
|
|
|
|
|
return {
|
|
|
|
'name': name,
|
|
|
|
'phrases': phrasesJson,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class Phrase {
|
|
|
|
String text;
|
|
|
|
|
|
|
|
Phrase({required this.text});
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
return {'text': text};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
````
|
|
|
|
|
|
|
|
*User*
|
|
|
|
|
|
|
|
````
|
|
|
|
import 'objective.dart';
|
|
|
|
import 'phrase.dart';
|
|
|
|
|
|
|
|
class User {
|
|
|
|
final String? name;
|
|
|
|
final int? notificationTime;
|
|
|
|
final int? dailyGoal;
|
|
|
|
final List<Objective>? objectives;
|
|
|
|
final List<Phrase>? phrases;
|
|
|
|
|
|
|
|
const User({
|
|
|
|
this.name,
|
|
|
|
this.notificationTime,
|
|
|
|
this.dailyGoal,
|
|
|
|
this.objectives,
|
|
|
|
this.phrases,
|
|
|
|
});
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
List objectivesJson = objectives!.map((e) => e.toJson()).toList();
|
|
|
|
List phrasesJson = phrases!.map((e) => e.toJson()).toList();
|
|
|
|
|
|
|
|
return {
|
|
|
|
'name': name,
|
|
|
|
'notificationTime': notificationTime,
|
|
|
|
'dailyGoal': dailyGoal,
|
|
|
|
'objectives': objectivesJson,
|
|
|
|
'phrases': phrasesJson,
|
|
|
|
};
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
````
|
|
|
|
|
|
|
|
Os schemas acima definem as classes Objective e Phrase, que representam as estruturas de dados dos objetivos e frases, respectivamente. A classe User contém os atributos correspondentes aos dados do usuário, incluindo listas de objetivos e frases.
|
|
|
|
|
|
|
|
## **Conclusões**
|
|
|
|
Esta documentação forneceu uma visão geral do banco de dados Firebase e apresentou os schemas para as coleções Objective e User. Com essas informações, os desenvolvedores podem entender a estrutura do banco de dados e como os dados são organizados no Firebase Realtime Database.
|
|
|
|
|
|
Coleções do Firebase Realtime Database
|
|
|
|
Coleção users
|
|
|
|
Esta coleção armazena os dados dos usuários registrados no aplicativo.
|
|
|
|
- [Implementação](#implementa%C3%A7%C3%A3o)
|
|
|
|
- [Schemas](#schemas) |
|
|
|
\ No newline at end of file |
|
|