2017-01-06 13 views
0

Firebase REST APIを使用する場合、ノード間でデータを移動するには、まずデータをダウンロードしてFirebaseにアップロードする必要はありません。Firebase REST APIのノード間でデータを効率的に移動

例えば、私は現在、次のデータがある場合:私はbranch_2に子を移動したい場合は

root 
    branch_1 
      branch_1_1 
         child 
    branch_2 

を、それらを追加し、最も効率的な方法を一つ子1の各項目をダウンロードするようですその後branch_2に移動し、branch_1の子を削除します。

編集1:変更データ構造、より正確なニーズに

+0

移動操作はありません。あなたは1つの場所からそれを読んで、2番目の場所にそれを加えてから元のものを取り除く必要があります。 –

+0

ありがとう@FrankvanPuffelen、Firebaseで働いているので、私はあなたの答えを信頼できるものにします! –

+0

これまでに数回答えられました:http://stackoverflow.com/questions/39611488/how-to-rename-parent-node、http://stackoverflow.com/questions/38261811/how-to-rename-nodes -in-firebase-unity –

答えて

1

を反映それともそれはへの分岐のアップデート、branch_2にbranch_1から「一部のデータ」を移動するために、その後

root 
    branches 
    -Yiujija9jsd 
     branch: "branch_1" 
     data: "some data" 
     timestamp: "some timestamp" 
    -Y88jsj9a9s 
     branch: branch_2" 
     data: "some other data" 
     timestamp: "some timestamp" 

全く異なるアプローチを取りますブランチ2 'はこのように見える

root 
    branches 
    -Yiujija9jsd 
     branch: "branch_2" 
     data: "some data" 
     timestamp: "some timestamp" 
    -Y88jsj9a9s 
     branch: branch_2" 
     data: "some other data" 
     timestamp: "some timestamp" 

*キーはchildByAutoIdで作成されます。 **タイムスタンプを追加して、最後に更新されたときに注文できるようにしました。

非常に柔軟な構造であり、検討するオプションです。

+0

firebase auto generated idは時系列的なので、実際にはこれはお勧めしません。したがって、私は何とか私が動いているノードに挿入時間を維持しなければならないでしょう。 –

+0

@QuanVuongなぜですか?元の質問にタイムスタンプを付ける必要はなく、注文の言及もありません。最初の質問を追加の要件で更新して、ユースケースを理解できますか?また、Firebaseには移動機能がないため、移動することなくデータを枝内で整理することができ、不要なダウンロードやアップロードを回避できます。ブランチノードへの単純な設定値はすべてです。 – Jay

+0

申し訳ありませんが、私は私の質問でそれを言及しませんでした。私はちょうどそれが最適なアイデアではないと思っていました。これは、シーケンシングのために自動生成されたIDに依存するかもしれないからです(そして名前の交換を意識していないチームの別の開発者がバグを作り出すかもしれません) –

関連する問題