2016-09-06 122 views
-3

我正在使用Firebase框架爲我正在執行的最終項目創建WepApp。我正在管理小型航空公司。我有以下的數據庫結構:Firebase數據庫檢索無關節點

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

我怎樣才能檢索New-York[1]Los-Angeles[5]Person2person1?可能嗎?或者其他人有其他解決方案不會殺死我的帶寬信用?非常感謝。

**編輯:我正在使用它的Web應用程序,因此我正在編寫JavaScript代碼(使用Web-storm IDE)。 我試圖拉動整個數據庫,這意味着檢索採用全「目標」對象:

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

,但這樣做,我「吃」我的帶寬分配

+0

請在您的Q上更加清楚,指定您正在使用的語言和平臺。也給我們你有什麼嘗試... – Dravidian

+0

正如Dravidian所說:很難想象一個更好的解決方案,而不會看到你目前如何解決這個問題。這就是說:如果你認爲你目前的解決方案不是最理想的,那麼很可能你必須考慮一個更好地支持你的應用程序用例的數據結構。我強烈建議閱讀本文[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毫秒。這是很多時間。我正在尋找其他解決方案 –