我有一个json文件:
{
"events": [
{
"title": "Wydarzenie 1",
"start": "2015-03-19"
},
{
"title": "Wydarzenie 2",
"start": "2015-03-20"
},
{
"title": "Wydarzenie 3",
"start": "2015-03-21"
}
]
}
但是当我将文件导入firebase时,它会变为:
{
"events": [
"0": {
"title": "Wydarzenie 1",
"start": "2015-03-19"
},
"1": {
"title": "Wydarzenie 2",
"start": "2015-03-20"
},
"2": {
"title": "Wydarzenie 3",
"start": "2015-03-21"
}
]
}
我想使用与导入格式相同的格式或至少以导入格式检索数据(没有自动ID,例如0,1,2)。我需要它将它作为参数传递给FullCallendar $ scope.eventSources = []。你能告诉我怎么做吗?
答案 0 :(得分:4)
您所看到的只是Firebase内部存储数组的方式:它将它们存储为带有数字键的关联数组。
但是当Firebase将数据读回JavaScript时,其val()
方法会将数据转换回正常数组。
Firebase documentation that describes array。
部分解释了此行为如果您正在使用AngularFire,它甚至会花很大力气将其映射到array that plays nicely with AngularJS's two-way data binding。
如果您想完全控制Firebase存储的数据格式,请考虑不要将数据作为JSON传递。例如:如果您将整个数据结构提供为字符串文字,Firebase将存储未经修改的数据结构。但是我不会打扰,因为如上所述:Firebase的客户端访问库将您的数据映射回您正在寻找的结构中。