1

添加子对象时,我想编辑父对象的优先级。我正在使用 PHP 和 REST API,并使用 POST 添加新的孩子。

但似乎 .priority 设置只能使用重置父对象的 PUT 进行。

我已阅读这篇文章并回答: Push to Firebase via REST API with Priority 但它适用于为新对象设置优先级。

然后我尝试检索父对象的内容并使用 .value 重置它,但这对我不起作用 - 可能是因为被推送的对象是一个复杂的对象,具有它自己的子对象。

那么是否有可能,或者将来是否有可能推送一个新的 .priority 设置?

4

2 回答 2

0

回复 Andrew 作为另一个答案,以便我可以格式化代码:

您建议的命令将为我提供现有的优先级,但我仍然看不到如何更改优先级。我正在使用 PHP,这是我尝试过的:

$url = $urlToParent . '/.priority/.json';
$fields = '{ ".priority" : ' . $timeStamp . ' }';
$result = doSend($url, $fields, 'PUT');

$url = $urlToParent . '/.priority/.json';
$fields = '{ ' . $timeStamp . ' }';
$result = doSend($url, $fields, 'PUT');

$url = $urlToParent . '/.json';
$fields = '{ ".priority" : ' . $timeStamp . ' }';
$result = doSend($url, $fields, 'POST');

doSend() 是一个使用 POST 或 PUT 发送数据的 PHP 函数。

这些不同的尝试要么删除整个对象,要么删除优先级设置,要么返回错误。我确信一定有一种方法可以做我想做的事,我只是没有找到正确的 URL、参数和发送方法的组合。

于 2013-03-20T23:40:08.823 回答
0

简单的答案是通过将 .priority 附加到 URL 的末尾来直接设置优先级。IE:

curl https://SampleChat.firebaseIO-demo.com/users/tom/.priority/.json

如果您想在写入其他数据的同时设置优先级,您也可以这样做。请参阅文档中的从 REST API 编写优先级。

请注意,优先级只能写入已包含数据的位置。如果您尝试将优先级写入 null 位置,则优先级将被忽略,REST 调用将返回 null。

没有任何命令可以同时推送对象和更新父对象的优先级(我无法为此提出一个好的用例——如果您有任何想法,请发表评论)。

于 2013-03-20T21:26:26.890 回答