gpt4 book ai didi

javascript - Firebase JSON 结构未插入小部件功能

转载 作者:太空宇宙 更新时间:2023-11-04 16:08:19 25 4
gpt4 key购买 nike

我知道这可能是一个常见问题,但我在获取适合我的用例的解决方案时遇到了问题。我有一个日历小部件,是在 Codepen 上使用 JS 制作的。我想用我的 Firebase 数据库替换默认数据,但 JSON 结构不同并且破坏了日历功能。我在 Firebase 中的 JSON 如下:

    {
"Events" : {
"cool event" : {
"calendar" : "Other",
"color" : "yellow",
"date" : "2017-01-13",
"eventName" : "new"
}
},

Widget接收数据的原始方法是这样的:

var data = [
{ eventName: 'Lunch Meeting w/ Mark', calendar: 'Work', color: 'orange', date: '2014-02-08' },]

如何格式化我的数据或修改函数以接受我的数据结构?请记住,Firebase 不允许使用简单数组并将它们存储为对象......

这是一个 CodePen:http://codepen.io/Auzy/pen/OWJxqO

最佳答案

一种方法是将数据转换为所需格式的数组

例如

var firebase = {
"Events" : {
"cool event" : {
"calendar" : "Other",
"color" : "yellow",
"date" : "2017-01-13",
"eventName" : "new"
}
}
};

var data = [];
for(event in firebase.Events){
data.push(firebase.Events[event])
}

console.log(data)

<小时/>

更新

Firebase API 是异步的,因此您需要等待数据(使用 .once('value').then(..))返回并然后转换数据(您实际上不需要这些数据,因为 firebase 提供了迭代器),然后初始化日历。

所以你需要将代码更改为

var stuff = firebase.database().ref().child("Events");
var data = [];
stuff.once('value').then(function(snapshot){
snapshot.forEach(function(event){
data.push( event.val() );
})
var calendar = new Calendar('#calendar', data);
});

(并从代码底部删除初始化,因为它已插入回调中)

关于javascript - Firebase JSON 结构未插入小部件功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41705663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com