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

How to bypass Firebase auto-add Id when importing JSON

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

您所看到的只是 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 的客户端访问库将您的数据映射回您正在寻找的结构。