【问题标题】:Saving data to Firebase with REST使用 REST 将数据保存到 Firebase
【发布时间】:2015-03-30 20:23:35
【问题描述】:

我正在使用 Firebase 使用 REST api 存储带有名称的应用程序令牌。

这是我正在使用的数据结构:

这是我添加新应用后的数据结构。

这是我使用的命令。

curl -X POST -d "{\"3ba7792jae16328\":{\"name\":\"Test 2\"}}" \ https://xxx.firebaseio.com/apps.json

我不希望 POST 请求添加到我的数据结构中的唯一 ID。我已经尝试过 PUT 请求,但它覆盖了“应用程序”节点内的所有数据。无论如何,这是我尝试过的 PUT 命令。

curl -X POST -d "{\"3ba7792jae16328\":{\"name\":\"Test 2\"}}" \ https://xxx.firebaseio.com/apps.json

还有其他方法可以添加数据并保留我的结构吗?

(使用自动生成的 POST 令牌作为我自己的应用程序令牌不是有效答案)

【问题讨论】:

    标签: rest curl firebase


    【解决方案1】:

    您应该将自己生成的 ID 放入 URL:

    curl -X POST -d "{\":{\"name\":\"Test 2\"}" \ https://xxx.firebaseio.com/apps/3ba7792jae16328.json
    

    Firebase 始终会覆盖(除非您使用 PATCH)您指定的网址处的整个节点。因此,将 URL 指定到要覆盖数据的级别非常重要。

    【讨论】:

    • 谢谢@Frank 我根据你的命令使用了这个命令来添加新条目。 curl -X POST -d "{\"name\":\"Test 2\"}" \ https://xxx.firebaseio.com/apps/hi90210bet3b357.json
    • 还有 POST 令牌。没有办法取出来吗?无论如何,谢谢,你给出了正确的答案。
    • 如果您的意思是该命令是否可以在没有-X POST 参数的情况下运行,那么我不确定。 Firebase 在这里遵循 REST-ful 模式,数据更新需要 POSTPUTPATCH 动词来进行数据更新。如果您可以在不使用 -X POST 的情况下让 curl 发出其中一个动词,那将解决它。或者,Firebase 有一个“方法覆盖”,但这只会用更长的东西替换 -X POSTfirebase.com/docs/rest/api/#section-method-override
    【解决方案2】:

    有两种方式:

    • 如果你想在行上添加:

      方法:PUT

      网址:https://yourID.firebaseio.com/pages/your_object_name.json

      数据:

      {
        "1": {
          "id": "5",
          "name": "page 4"
        }
      }
      
    • 如果要添加多行:

      方法:补丁

      网址:https://yourID.firebaseio.com/pages.json

      数据:

      {
        "1": {
          "id": "5",
          "name": "page 4"
        },
        "2": {
          "id": "5",
          "name": "page 4"
        },
        "3": {
          "id": "5",
          "name": "page 4"
        }
      }
      

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      相关资源
      最近更新 更多