我想将新数据发布到我的firebase API,但每次我这样做时,都会生成一个新的密钥,如-L545gZW7E6Ed6iqXRok
,其中包含我的对象。我想在没有这个新密钥的情况下将我的对象直接保存到API。 This SO question answers如何使用set()方法完成它,但我想使用Postman实现这一点。我使用Postman直接发布到firebase。
url: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与最初“放入”firebase的整个json对象一起添加或删除,并且firebase将新的put请求与已经存在的内容进行比较并相应地进行更新。我不知道行为是我理解的,或者没有更好的方法来添加数据而没有自动生成的密钥。
答案 0 :(得分:3)
使用POST
verb时,Firebase会生成新位置。这与REST-ful惯用法一致:POST
用于在服务器定义的新位置创建新对象。
如果您要写入现有位置或您控制的新位置,请使用PUT
verb。在这种情况下,数据将写入您在URL中指定的位置,它将覆盖该位置的任何现有数据。
如果您想更新现有位置的部分数据,但未修改其他数据,请使用PATCH
verb。
如果您的HTTP客户端不支持指定动词,您可以选择pass the verb as HTTP-Method-Override
header。