2016-09-06 1 views
-3

Я использую инфраструктуру Firebase для создания WepApp для проекта Final, который я делаю. Я управляю небольшой авиакомпанией. У меня есть структура базы данных ниже:База данных Firebase извлекает несвязанные узлы

{ 
    destination: 
    {New-York: 
      { 
      1:{ 
       person1:"ADAM", 
       person2:"Joy"} 
      2...31: 
     } 
     Los-Angeles:{ 
      1:{ 
       preson1:"Roy", 
       person2:"Noy" 
       } 
      2..31: 
      } 
    } 

Как я могу восстановить только person1 из New-York[1] и Person2 от Los-Angeles[5]? Является ли это возможным? Или у кого-нибудь еще есть другое решение, которое не убьет мои кредиты на пропускную способность? Большое спасибо.

** EDIT: Я использую его для веб-приложения, поэтому я пишу код с помощью JavaScript (с использованием Web-storm IDE). Я пытался вытягивать всю базу данных, что означает получение всего «адресата» объекта с помощью:

var ref=firebase.database().ref('/destination/').once("value"); 
ref.then(function(snapshot){MY-CODE...}) 

но делать, что я «есть» моя полоса пропускания выделения

+0

Подробнее о вашем Q, Укажите язык и платформу, которую вы используете. Также дайте нам то, что вы пробовали ... – Dravidian

+0

Как говорит Дравидиан: трудно думать о лучшем решении, не видя, как вы в данный момент решили это. При этом: если вы считаете, что ваше текущее решение является субоптимальным, скорее всего, вам придется подумать о структуре данных, которая лучше поддерживает использование вашего приложения. Я настоятельно рекомендую прочитать эту статью в [Моделировании данных NoSQL] (https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/). –

+0

Эй, я .. Я редактирую свой вопрос, надеюсь, что это лучше объясняется. –

ответ

0

Если вы хотите получить значение, хранящееся в person1 или person2, то просто укажите полный путь, а затем вызовите snapshot.val(), он вернет значение, сохраненное в этом месте.

firebase.database().ref('destination/New-York/1/person1').on('value', function(snapshot) { 
    console.log(snapshot.val()); //ADAM 
}); 

firebase.database().ref('destination/Los-Angeles/5/person2').on('value', function(snapshot) { 
    console.log(snapshot.val()); //Name of Person 2 
}); 
+0

Эй, спасибо, много. Это очевидное решение. Сначала мне нужно обработать данные вместе, второй вывод информации из базы данных, 800 мс. Это много времени. Я ищу другие решения –

Смежные вопросы