Firebase - 无效的JSON数据或键值.键值不能包含$#[] /或

Hom*_*ugh 10 json firebase firebase-realtime-database

我正在尝试将我的JSON文件导入我的Firebase,但它一直给我这个错误.我不知道为什么不允许导入这个JSON文件,因为JSONLint说它是一个有效的JSON文件.

这是文件:

{
  "Featured" : {
      "artist" : "james turell",
      "artistEPK" : "artistsownepk.pdf",
      "author" : "john queue author",
      "date" : "7/28/2016",
      "fullScreenImg" : "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687",
      "linksToMedia" : [ "www.wallplay.com/project-name/james-t/press.html" ],
      "linksToPress" : [ "" ],
      "location" : "10 Main Street",
      "mainImg" : "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687",
      "pressImgs" : [ "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687", "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687", "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687" ],
      "pressRelease" : "projectpressrelease.pdf",
      "projectImgs" : [ "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687", "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687", "https://firebasestorage.googleapis.com/v0/b/wallplay-a8440.appspot.com/o/Screen%20Shot%202016-06-08%20at%2012.00.06%20PM.png?alt=media&token=1df5d60d-808c-48bb-a591-e005f82e4687" ],
      "projectSubheader" : "subheader of project",
      "projectTitle" : "title of project",
      "projectURL" : "",
      "soundFile" : [ ],
      "text" : "here there would be a text for james turell",
      "videoURL" : ""
    },
  "Future" : {

  },
  "Past" : {

  },
  "Present" : {

  }
}
Run Code Online (Sandbox Code Playgroud)

使用Web界面导入json时会出现问题

在此输入图像描述

Dan*_*iel 14

我只是花了一些时间在这上面,并在收到此错误消息时为我(可能还有许多其他人)发现了问题.看起来firebase只能导入UTF-8编码的文件(无BOM)

我发现它很奇怪,因为我无法重新导入我刚导出的内容.

我尝试了所有带有LE和BE的UTF版本8,16,有或没有BOM,只能UTF-8工作

我希望firebase没有这个完全误导性的错误消息

在此输入图像描述


N.J*_*.J. 5

有两件事可以帮助别人节省几个小时的头部抓挠:

1)空字符串是有效的JSON密钥,它们不是有效的Firebase密钥。

2)尽管Web工具错误消息令人震惊,但命令行工具实际上提供了有用的信息,例如行号(当您拥有300K +的行文件时,这很好)

例如

Firebase的-项目数据库:设置/ import.json

从根本上覆盖一切

  • 对于我们这些没有 F​​irebase CLI 的人:https://firebase.google.com/docs/cli (2认同)

maj*_*bot 5

这发生在我身上,并且有一个完全不同的原因:当数据添加到某些集合时,我有 Firebase 函数触发。GUI工具给了我OP得到的无益错误。但是使用 CLI 运行,我得到:

Error: HTTP Error: 400, This request would cause too many functions to be triggered.
Run Code Online (Sandbox Code Playgroud)

所以,这个错误最终真的拯救了我的隐藏,因为为我导入的几百个节点中的每一个运行一个函数将是灾难性的。

为了解决这个问题,我使用注释掉的函数部署了我的应用程序代码,然后能够使用 GUI 导入我的数据。一旦我的数据输入,我就取消注释掉这些函数并再次部署。


Fil*_*ype 0

您发布的 JSON 对于 Firebase 有效,因此问题不在于该 JSON。它必须在您的应用程序中的其他位置。