Como almacena los datos Firebase Realtime Database

Arbol JSON

Que mejor que verlo con un ejemplo nada más empezar

Ejemplo de como almacena Firebase los datos en formato JSON

{
 "usuarios": {
  "maria26_nick": {
    "nombre": "Maria Rodriguez",
    "contactos": { "roberto99_nick": true },
    },
  "roberto99_nick": { ... },
  "david693": { ... }
  }
}

Los datos en la base de datos de Firebase se almacenan como un árbol con ramas y dentro de estas ramas otras. En cada rama puede haber más o acabar ahí dándole valor a un elemento.

El ejemplo anterior podría servir para guardar una lista de usuarios, cuyo nodo de acceso sería el nombre de usuario y dentro tendríamos el nombre completo y los contactos relacionados.

Por supuesto esto es una estructura muy sencilla, pongamos como ejemplo algo más complejo. Desde Google se recomienda seguir unas recomendaciones a la hora de diseñar la estructura de estos arboles, para evitar que la obtención de determinados nodos o elementos se demore debido a una poco optimizada estructura JSON,

{
// Cada elemento chat contiene únicamente información sobre él
// no contiene los mensajes ni información sobre usuarios
  "chats": {
    "one": {
    "title": "Grupo de Firebase España",
    "lastMessage": "roberto99: Como configurar Analytics en Firebase.",
      "timestamp": 1459361875666
    },
    "two": { ... },
    "three": { ... }
  },

// Las personas que están en cada chat se pueden almacenar en este elemento
// "members", comparte el ID de la conversación con el elemento chat
  "members": {
    // we'll talk about indices like this below
    "one": {
    "roberto99": true,
    "maria96": true,
    "alex88": true
    },
    "two": { ... },
    "three": { ... }
  },

// Al separar mensajes de otros datos, podemos recorrer la lista de mensajes mucho
// más rápido que si tuviéramos que guardar toda la información de
// mensajes, miembros y conversaciones en un mismo elemento "chat"
// Tenemos un ID de chat, de mensaje que se comparte con "members" y "chats"
  "messages": {
    "one": {
      "m1": {
      "name": "alex88",
      "message": "Usar Firebase para almacenar datos de apps",
        "timestamp": 1459361875337
      },
      "m2": { ... },
      "m3": { ... }
    },
    "two": { ... },
    "three": { ... }
  }
}

Deja un comentario