1

子オブジェクトが追加されたときに、親オブジェクトの優先度を編集したい。PHP と REST API を使用し、POST を使用して新しい子を追加しています。

しかし、.priority 設定は、親オブジェクトをリセットする PUT を使用してのみ行うことができるようです。

この投稿と回答を読みました: Push to Firebase via REST API with Priority but it apply to the setting priority for new objects.

次に、親オブジェクトの内容を取得して .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

簡単な答えは、URL の末尾に .priority を追加して優先度を直接設定することです。すなわち:

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

他のデータの書き込みと同時に優先度を設定したい場合は、それも可能です。docsの REST API からの優先度の記述を参照してください。

優先順位は、既​​にデータが含まれている場所にのみ書き込むことができることに注意してください。null の場所に優先順位を書き込もうとすると、優先順位は無視され、REST 呼び出しは null を返します。

オブジェクトのプッシュと親の優先度の更新の両方を同時に行うコマンドはありません (このための適切な使用例を思いつくのに苦労しています。何か心に留めていることがあれば、コメントを残してください)。

于 2013-03-20T21:26:26.890 に答える