firebase - 在没有唯一键的情况下向 firebase 发布请求

标签 firebase firebase-realtime-database

我想将新数据发布到我的 firebase API,但每次这样做时,都会有一个新 key ,例如 -L545gZW7E6Ed6iqXRok是用我的对象在里面生成的。我想在没有这个新 key 的情况下将我的对象直接保存到 API。 This SO question answers如何使用 set() 方法来做到这一点,但我想使用 Postman 来实现这一点。我使用 Postman 直接发布到 firebase。
网址:https://my-firebase-project.firebaseio.com/galaxies.json使用 POST 方法。

//current saving like this in firebase
"0000001" : {
  "active": false,
  "name": "tp-milky-way",
  "time": 60
},
"-L545gZW7E6Ed6iqXRok": {
	"0000011": {
      "active": false,
      "name": "tp-andromeda",
      "time": 60
    }
}

//I want it without the key
"0000001" : {
  "active": false,
  "name": "tp-milky-way",
  "time": 60
},
"0000011" : {
  "active": false,
  "name": "tp-andromeda",
  "time": 60
}


编辑:我发现我可以将 PUT 与整个 json 对象一起使用,该对象最初是通过添加或删除“放置”到 firebase 的,并且 firebase 将新的放置请求与那里已有的内容进行比较并相应地更新。我不知道这种行为是我所理解的,或者是否没有更好的方法来添加没有自动生成的 key 的数据。

最佳答案

当您使用 POST verb , Firebase 生成一个新位置。这符合 REST-ful 习惯用法:POST用于在服务器定义的新位置创建新对象。

如果要写入现有位置或您控制的新位置,请使用 PUT verb .在这种情况下,数据将准确写入您在 URL 中指定的位置,并且会覆盖该位置的任何现有数据。

如果您想更新现有位置的部分数据,但不修改其他数据部分,请使用 PATCH verb .

如果您的 HTTP 客户端不支持指定动词,您可以选择 pass the verb as HTTP-Method-Override header .

关于firebase - 在没有唯一键的情况下向 firebase 发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48732179/

相关文章:

c# - Firebase 统一 : How to handle no internet connection situations

关闭应用程序时未收到 Android FCM 推送通知

firebase - Cloud FireStore 最低部署目标

android - 我想以编程方式更新 Firebase 远程配置中的参数

android - Firebase Android 获取未知 key 的值

android - Firebase 存储 URL 随新 token 不断变化

android - - 类型 'GoogleServicesTask' 字段 'intermediateDir' 没有相应的 getter 已用 @OutputDirectory 注释

Firebase Cloud Functions 和 Cloud Firestore 区域

java - 如何对数据求和并将其传输到 Firebase?

javascript - 尝试删除单个子项时整个 Firebase 数据库被删除