导入JSON时如何绕过Firebase自动添加ID

时间:2015-03-24 10:41:55

标签: firebase

我有一个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 = []。你能告诉我怎么做吗?

1 个答案:

答案 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的客户端访问库将您的数据映射回您正在寻找的结构中。