Skip to content

Commit

Permalink
Actualizo README y doc
Browse files Browse the repository at this point in the history
  • Loading branch information
sportelliluciano committed Jul 6, 2020
1 parent 3d8fd77 commit 7e070c5
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 5 deletions.
12 changes: 7 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,12 @@

Código de ejemplo sobre cómo utilizar la Realtime DB de Firebase para implementar un pequeño chat.

## Configuración

Se debe crear un archivo `config.py` copiando `config-ejemplo.py` y editando los valores que
correspondan. Particularmente es necesario editar `ARCHIVO_CREDENTIALS` con la ruta al archivo
JSON de credenciales de Firebase (que puede obtenerse desde la consola de Firebase).

## Funcionamiento

Cada persona que quiere utilizar el chat tiene asignado un ID numérico. Cada chat se realiza únicamente entre dos personas. Cuando la persona con ID 1 quiere enviar un mensaje a la persona con ID 2, debe realizar una solicitud POST al servidor de chat.
Expand All @@ -18,9 +24,5 @@ body: {
}
```

Recibida la solicitud, el servidor de chat almacenará el mensaje recibido en la base de datos de tiempo real de Firebase (función `enviar_mensaje`). Para esto deberá ubicar el nodo que representa el chat de la persona 1 con la persona 2 y agregarle un nuevo hijo con el mensaje recibido.

En la estructura planteada en este ejemplo, se le asigna un identificador a cada chat de la forma "ID1-ID2", donde siempre ID1 es menor que ID2; de modo que si la persona 1 quiere hablar con la 2, su identificador de chat es "1-2"; y si la persona 43 quiere hablar con la persona 37 su identificador de chat es "37-43". Que el ID1 sea menor que el ID2 sólamente elimina la ambigüedad de tener chats con identificador "37-43" y "43-37" según quién inició el chat.

Dentro de cada nodo de chat, los mensajes se almacenarán como un conjunto de tres valores: ID de quién lo envió, fecha y hora del mensaje en formato ISO, y texto del mensaje.
Recibida la solicitud, el servidor de chat almacenará el mensaje recibido en la base de datos de tiempo real de Firebase (función `enviar_mensaje`). Ver definición de la estructura en `servidor.py`.

4 changes: 4 additions & 0 deletions config-ejemplo.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# Hacer una copia de este archivo llamada config.py editando lo que
# corresponda.
#

# Ruta al archivo JSON de credenciales de Firebase
ARCHIVO_CREDENTIALS = 'obtener-desde-firebase.json'

Expand Down

0 comments on commit 7e070c5

Please sign in to comment.