【问题标题】:How to provide custom IDs during JSON import in Firebase Database?如何在 Firebase 数据库中导入 JSON 期间提供自定义 ID?
【发布时间】:2018-04-14 04:12:34
【问题描述】:

当我使用 JSON 导入功能时,如何在 Firebase 数据库中设置记录或文档的 ID? 当我导入文件时,它会创建顺序 ID(0、1、2 等),但我想指定一个 ID,以便更容易检索记录。

以下是我的 JSON 数据示例:

[
{
    "GameID": 2234567890,
    "GameName": "Team 3 vs Team 2",
    "GameLocation": "Rink 4 Hockey Town",
    "TypeOfGame": "Tournament Round Robin",
    "HomeTeam": {
        "Name": "Team 1",
        "ImageUrl": "My Image URL 1",
        "Level": "16AAA",
        "Country": "USA"
    }
}, {
    "GameID": 1234567890,
    "GameName": "Team 1 vs Team 2",
    "GameLocation": "Rink 1 Hockey Town",
    "TypeOfGame": "Tournament Round Robin",
    "HomeTeam": {
        "Name": "Team 1",
        "ImageUrl": "My Image URL 1",
        "Level": "16AAA",
        "Country": "USA"
    }
}
]

【问题讨论】:

    标签: firebase-realtime-database


    【解决方案1】:

    您无法同时导入 JSON 文件并生成自定义 ID。您将 (0、1、2 等) 作为 Id,因为这些对象之间没有唯一标识符,并且 Firebase 将所有这些记录视为一个列表,因此为您提供这些 id。

    要实现您想要的,您需要使用 Firebase 为每条记录提供的 push() 函数以编程方式添加该数据。该方法生成一个唯一的 id,便于以后使用。

    【讨论】:

    • 你可能有这方面的节点示例吗?
    • @RossRawlins This 是您可以使用push() 向数据库添加新子项的方法。
    【解决方案2】:
    [ {
      "1234567890" : {
        "GameID" : 1234567890,
        "GameLocation" : "Rink 1 Hockey Town",
        "GameName" : "Team 1 vs Team 2",
        "HomeTeam" : {
          "Country" : "USA",
          "ImageUrl" : "My Image URL 1",
          "Level" : "16AAA",
          "Name" : "Team 1"
        },
        "TypeOfGame" : "Tournament Round Robin"
      },
      "2234567890" : {
        "GameID" : 2234567890,
        "GameLocation" : "Rink 4 Hockey Town",
        "GameName" : "Team 3 vs Team 2",
        "HomeTeam" : {
          "Country" : "USA",
          "ImageUrl" : "My Image URL 1",
          "Level" : "16AAA",
          "Name" : "Team 1"
        },
        "TypeOfGame" : "Tournament Round Robin"
      }
    } ]
    

    【讨论】:

    • 如果你能在上面的代码中用几句话解释一下你做了什么以及为什么这样做,那就太好了。谢谢。
    • 请务必用通俗易懂的语言解释您的代码,以便对其他人有所帮助。
    • 很确定我知道你试图用这个做什么,但这段代码不会工作,它只会创建一个嵌套对象,以“1234567890”作为节点的名称,你的节点ID仍然会是 1,2,3,4
    猜你喜欢
    • 2017-11-07
    • 1970-01-01
    • 2020-08-07
    • 2021-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-16
    • 1970-01-01
    相关资源
    最近更新 更多