【发布时间】:2015-11-14 17:25:26
【问题描述】:
我正在使用 Firebase REST API 从 Parse Cloud Code 向多个节点添加一些对象
但是,这会覆盖节点!
(为清楚起见,此处使用硬编码值)
var chatPayload = {
"rooms":
{
"animalRoom" : true,
},
"members":
{
"animalRoom":
{
"chrisTheCat": true,
"hankTheHog" : true
}
}
}
Parse.Cloud.httpRequest({
url: 'https://myapp.firebaseIO.com/' + '.json',
method: 'PUT',
body: JSON.stringify(chatPayload)
(...)
})
我已经使用字符串连接实际变量,即:
'{
"rooms/' + animalRoom + '": "true",
"members/' + animalRoom + '/' + chrisTheCat '": "true",
"members/' + animalRoom + '/' + hankTheHod '": "true",
}'
但是这只是将一个大字符串写入根引用。
我已经非常彻底地阅读了 Firebase 文档,并且知道可能的解决方案是将子节点附加到请求中的 url。但是,我正在更新多个节点,并希望实现这一目标。
我也尝试将PUT 切换为PATCH,但实际上并没有写任何东西。
有什么想法吗?
回答:这是不可能的。 Parse 不支持 PATCH 请求
【问题讨论】:
-
在 REST 方面,这就是 PUT 应该做的:用给定的数据覆盖给定的资源。 Firebase 是做什么的,我不知道。如果要覆盖“子资源”,请将路径名更改为
my/collection/item.json等。 -
@Rudie 当我将它切换到
PATCH时,请求实际上并没有做任何事情..... -
@Rudie 问题是我正在尝试写入多个路径
-
文档说你应该使用客户端的
update()方法:firebase.com/docs/web/guide/saving-data.html#section-update 我不知道update()做了什么,但我相信你可以找到。或者使用PATCH,嗯..firebase.com/docs/rest/guide/saving-data.html#section-update -
@Rudie 我其实试过
PATCH,但是数据不受影响
标签: javascript json rest parse-platform firebase