我正在使用firebase来收集数据,我想创建一个临时网页,以便在测试时快速查看json数据库(并共享它)。 数据按日期字符串分组,然后用随机密钥分组,然后分组数据。例如:
{
"20160304" : {
"-KC-aOwSWpt4dlYmjJE4" : {
"coordinates" : "-37.7811465912404, 145.005993055861",
"event" : "Test event",
"time" : "2016-03-04 07:48:43 +0000"
}, etc...
要测试显示事件数据,我在html中使用javascript,如下所示:
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 :(得分: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级别的活动。