Хранение данных на Firebase будет запрошено позже - PullRequest
0 голосов
/ 27 июня 2018

У нас есть приложение, которое будет хранить данные в Firebase (базе данных), которые затем будут опрошены позже.

В каком формате хранятся данные.

Пример данных будет дополнен игрой. Они будут иметь такие данные, как:
UserId
TimeToComplete
GameData
И т.д ...

Затем запрос будет искать все завершенные игры по идентификатору пользователя. Мы хотим, чтобы данные собирались наилучшим образом для последующего запроса, а не рефакторинга позже.

1 Ответ

0 голосов
/ 27 июня 2018

Прежде всего, убедитесь, что у вас есть веская причина использовать Firebase вместо Firestore. Если вы уверены, что вам следует использовать базу данных Firebase Realtime Database, посмотрите на приведенную ниже выдержку из документации. Таким образом, у вас может быть два отдельных родительских узла, один для userId и другой для игр. Дочерний элемент каждого игрового узла - это особая игра, в которой есть дочернее дерево пользователей игры (по userId).

Сгладить данные структуры Если данные вместо этого разбиты на отдельные пути, также называется денормализация, это может быть эффективно загружено в отдельных вызовах, как это нужно. Рассмотрим эту уплощенную структуру:

{
  // Chats contains only meta info about each conversation
  // stored under the chats's unique ID
  "chats": {
    "one": {
      "title": "Historical Tech Pioneers",
      "lastMessage": "ghopper: Relay malfunction found. Cause: moth.",
      "timestamp": 1459361875666
    },
    "two": { ... },
    "three": { ... }
  },

  // Conversation members are easily accessible
  // and stored by chat conversation ID
  "members": {
    // we'll talk about indices like this below
    "one": {
      "ghopper": true,
      "alovelace": true,
      "eclarke": true
    },
    "two": { ... },
    "three": { ... }
  },

  // Messages are separate from data we may want to iterate quickly
  // but still easily paginated and queried, and organized by chat
  // conversation ID
  "messages": {
    "one": {
      "m1": {
        "name": "eclarke",
        "message": "The relay seems to be malfunctioning.",
        "timestamp": 1459361875337
      },
      "m2": { ... },
      "m3": { ... }
    },
    "two": { ... },
    "three": { ... }
  }
}
...