Firebase Database REST PUT 会覆盖数据而不是添加数据



我有一个简单的Firebase数据库,看起来像这样:

app-name
᠁
[-]⋯Users
᠁
᠁⋯⋯ Daniel: daniel@gmail.com
᠁
᠁⋯⋯ John: john@gmail.com

我想发出一个 REST PUT 请求,以便将Peter: peter@gmail.com添加到数据库中,它应该看起来像这样结束:

app-name
᠁
[-]⋯Users
᠁
᠁⋯⋯ Daniel: daniel@gmail.com
᠁
᠁⋯⋯ John: john@gmail.com
᠁
᠁⋯⋯ Peter: peter@gmail.com

我使用以下JavaScript代码:

httpPut: function(){
var xhr = new XMLHttpRequest();
xhr.open('PUT', "https://app-name.firebaseio.com/Users.json", true);
xhr.setRequestHeader('Content-type', 'application/json');
xhr.onload = function () {
cc.log(this.responseText);
};
xhr.send("{"Peter": "peter@gmail.com"}");
},

问题是当我调用httpPut()时,它实际上只用Peter: peter@gmail覆盖了所有用户的内容,如下所示:

app-name
᠁
[-]⋯Users
᠁
᠁⋯⋯ Peter: peter@gmail.com

为了只添加一行而不覆盖所有用户内容,我该怎么做?

你应该使用:
放置写入请求(设置数据/重写(
发布请求添加(如javascript数组推送(
更新补丁请求

https://firebase.google.com/docs/reference/rest/database/#section-patch

如果从不支持上述方法的浏览器进行 REST 调用,则可以通过发出 POST 请求并使用 X-HTTP-Method-Override 请求标头设置方法来覆盖请求方法

https://firebase.google.com/docs/reference/rest/database/#section-method-override

最新更新