2017-01-03 106 views
1

我無法從Firebase中獲取我的網絡應用中的正確數據。訪問Firebase中的嵌套數據

問題是,我想在一個名爲'隨機數'的對象中的數據。我希望能夠將所有的字段都放入變量中,以便我可以測試,設置頁面以顯示所有數據,諸如此類。但我迷失在如何查詢這些密鑰以便使用它們。

database

現在我只是將數據記錄到控制檯來獲取數據結構的感覺。 PS。我沒有組織數據,有人在我面前做過。

code

在那裏我有我兩個註釋掉變量曾試圖在鍵入關鍵的之一,看看我能得到的數據,但它不工作。

+0

您需要更清楚。哪些密鑰是隨機的?你想如何查詢它?您是否想要使用特定的打開票證屬性進行查詢? – cartant

+0

現在,openTickets下面是一張帶有隨機鍵名稱的門票列表。我是Firebase的新手,我更習慣於使用JSON數據,並且能夠輕鬆獲取我想要的超級數據。我只是對概念進行測試的證據,就像我去的那樣。我想從數據庫和console.log中選擇一張票據數據。在這一點上,我已經獲得了Inspector中所有東西的console.log。 –

回答

3

如果你是下inspectors檢索的一切,你可以訪問的數據是這樣的:

firebase 
    .database() 
    .ref() 
    .child('inspectors') 
    .once('value', function (inspectorsSnapshot) { 

    inspectorsSnapshot 
     .child('obfuscated') // This key is obfuscated in your question. 
     .child('openTickets') 
     .forEach(function (openTicketSnapshot) { 
     console.log(openTicketSnapshot.key); // The random key. 
     var val = openTicketSnapshot.val(); 
     console.log(val.address); 
     console.log(val.assignedInspector); 
     // etc. 
     }); 
    }); 

您還可以細化查詢本身僅檢索數據,你想:

firebase 
    .database() 
    .ref() 
    .child('inspectors') 
    .child('obfuscated') // This key is obfuscated in your question. 
    .child('openTickets') 
    .once('value', function (openTicketsSnapshot) { 

    openTicketsSnapshot.forEach(function (openTicketSnapshot) { 
     console.log(openTicketSnapshot.key); // The random key. 
     var val = openTicketSnapshot.val(); 
     console.log(val.address); 
     console.log(val.assignedInspector); 
     // etc. 
    }); 
    }); 

而且,如果您只想要前幾項:

firebase 
    .database() 
    .ref() 
    .child('inspectors') 
    .child('obfuscated') // This key is obfuscated in your question. 
    .child('openTickets') 
    .limitToFirst(10) 
    .once(... // etc. 
+0

謝謝,我會試試。我沒有意識到你可以鏈接兩個孩子的方法。我想我現在知道該怎麼做。我需要將觀察到的變量放入變量中。 –