导入时如何绕过 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 的客户端访问库将您的数据映射回您正在寻找的结构。
我有一个 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 的客户端访问库将您的数据映射回您正在寻找的结构。