База данных Firebase: получить только один дочерний узел из множества дочерних узлов - PullRequest
0 голосов
/ 15 мая 2018

Я использую базу данных Firebase в реальном времени.Я не хочу получать все дочерние узлы для определенного родительского узла, я обеспокоен этим конкретным узлом, а не узлами-братьями.Извлечение всех узлов-братьев увеличивает мой счет в базе данных, когда извлекаются дополнительные XXX МБ данных.Я использую библиотеку администратора NodeJ для получения этого.

Добавление образца JSON

{
  "phone" : {
    "shsjsj" : {
      "battery" : {
        "isCharging" : true,
        "level" : 0.25999999046325684,
        "updatedAt" : "2018-05-15 12:45:29"
      },
      "details" : {
        "deviceCodeName" : "sailfish",
        "deviceManufacturer" : "Google",
        "deviceName" : "Google Pixel",
      },
      "downloadFiles" : {
        "7bfb21ff683f8652ea390cd3a380ef53" : {
          "uploadedAt" : 1526141772270,
        }
      },
      "token" : "cgcGiH9Orbs:APA91bHDT3mI5L3N62hqUT2LojqsC0IhwntirCd6x0zz1CmVBz6CqkrbC",
      "uploadServer" : {
        "createdAt" : 1526221336542,
      }
    },
    "hshssjjs" : {
      "battery" : {
        "isCharging" : true,
        "level" : 0.25999999046325684,
        "updatedAt" : "2018-05-15 12:45:29"
      },
      "details" : {
        "deviceCodeName" : "sailfish",
        "deviceManufacturer" : "Google",
        "deviceName" : "Google Pixel",
      },
      "downloadFiles" : {
        "7bfb21ff683f8652ea390cd3a380ef53" : {
          "uploadedAt" : 1526141772270,
        }
      },
      "token" : "cgcGiH9Orbs:APA91bH_oC18U56xct4dRuyw9qhI5L3N62hqUT2LojqsC0IhwntirCd6x0zz1CmVBz6CqkrbC",
      "uploadServer" : {
        "createdAt" : 1526221336542,
      }
    }
  }
}

В приведенном выше примере файла JSON я хочу получить весь телефон -> $ deviceId-> token.В настоящее время я получаю весь телефонный объект, а затем перебираю все идентификаторы телефона, чтобы получить токен.Это увеличивает загрузку моей базы данных и увеличивает количество выставляемых счетов.Меня интересует только маркер всех устройств.Братья и сестры токена не нужны.

1 Ответ

0 голосов
/ 15 мая 2018

Все запросы к базе данных в реальном времени извлекают все под запрошенным местоположением. Там нет никакого способа ограничить определенных детей в этом месте. Если вы хотите, чтобы в определенном месте были только определенные дети, но не все в этом месте, вам придется запросить каждого из них в отдельности. Или вы можете реструктурировать или продублировать ваши данные для поддержки конкретных запросов, которые вы хотите выполнить - дублирование типично для баз данных типа nosql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...