2016-03-06 69 views
0

我正在使用firebase收集數據,並且我想創建一個臨時網頁以在測試時快速查看json數據庫(並共享它)。 數據按日期字符串分組,然後使用隨機密鑰和數據進行分組。例如:在網頁上顯示完整的firebase json數據

{ 
    "20160304" : { 
    "-KC-aOwSWpt4dlYmjJE4" : { 
     "coordinates" : "-37.7811465912404, 145.005993055861", 
     "event" : "Test event", 
     "time" : "2016-03-04 07:48:43 +0000" 
    }, etc... 

爲了測試出我使用JavaScript的HTML如下事件數據:

var myFirebaseRef = new Firebase("https://xxxx.firebaseio.com/"); 

myFirebaseRef.orderByKey().on("value", function(snapshot) { 
    snapshot.forEach(function(snapshot) { 
    console.log("The " + snapshot.key() + " event is " + snapshot.val().event); 
    }); 
}); 

但它只返回 的20160304事件是不確定 的20160305事件是不確定的

有誰知道我怎麼可以搶事件字符串?

+0

測試? https://chrome.google.com/webstore/detail/vulcan-by-firebase/oippbnlmebalopjbkemajgfbglcjhnbl?hl=zh-CN –

回答

1

你試圖跳過你的JSON的水平:

<date> 
    <pushid> 
     coordinates: ... 
     event: ... 
     time: ... 

既然你正在收聽的根,如果這個結構,您snapshot.forEach()遍歷的日期。這意味着您仍然需要循環播放推送ID:

var myFirebaseRef = new Firebase(「https://xxxx.firebaseio.com/」);

myFirebaseRef.orderByKey().on("value", function(snapshot) { 
    snapshot.forEach(function(snapshot) { 
    var events = snapshot.val(); 
    Object.keys(events).forEach(function(key) { 
     console.log(events[key]); 
    }); 
    }); 
}); 

另一方面,如果您只想每天照顧一個事件,則應將它們存儲在沒有pushid級別的位置。

+0

謝謝!就是這樣! – Richie

+0

你也知道我爲什麼得到[對象對象],而不是我添加行document.write(events [key])時的細節; – Richie

+0

因爲它是一個對象;具有多個屬性的東西。要完整地查看它'document.write(JSON.stringify(events [key]))'。但總的來說:請不要使用'document.write()'。只要'console.log()'一樣,並在瀏覽器的開發工具/ JavaScript conosole中查看。 –