2017-04-04 7 views
0

は、私は非常に単純なものを作るしようとしている、何かのように:Firebaseのパスをオブジェクトから変更することはできますか?

root: { 
    objects: { 
    id_subobj1: { // these are two objects doing current events. 
     name: "subName1", 
     description: "it's nice" 
    }, 
    id_subobj2: { 
     name: "subName2", 
     description: "it's cool" 
    } 
    }, 

    history: { 
// once they are done, I'd like to store them in this branch as an exact copy as they were in the "Objects" branch. 
    id_subobj: { 
     name: "name", 
     description: "it was nice" 
    } 
    } 
} 

私は何を達成したいことは、私のオブジェクトを取得することで、コピーのようなものと履歴ブランチに貼り付けます。

私はそうしようとしていますが、私はそれを成功させることができませんでした。

アイデア?

+0

既にこれを試したことがある場合は、[スタックした場所を再現する最小限のコード](http://stackoverflow.com/help/mcve)を共有してください。 –

+0

簡単な答えはです。オブジェクトノードを.valueで観察します。それらを配列に追加します。配列を繰り返し、setValueをそれぞれのヒストリノードに繰り返します。 Firebaseを使用するための鍵は、この作業をどのように達成するかを正確にカバーする[スタートガイド](https://firebase.google.com/docs/database/ios/start)ガイドを参照しています。あまりにも漠然としているので投票を閉じる。 – Jay

+0

あなたの答えをありがとう、私はこれを達成する、私はこれを忘れてしまった。私がしたことは、 'objects'ブランチから 'snapshot.val()'を取得し、 'history'ブランチを更新し、すべてのサブオブジェクト 'オブジェクト'を持っていることです。私。御時間ありがとうございます。 – RaulGM

答えて

0

あなたがする必要があるのは、それらを2度追加することだけです。同じ方法で、objectsに追加します。historyにも追加できます。ただし、1つのレコードを削除する場合は、両方の場所から削除する必要があります。希望itiが役立ちます。

+0

私が探しているものではありません。別のブランチの中にオブジェクト全体をコピーする必要があります。 – RaulGM

+0

はい、これを2回追加することで実現できます。違いは 'DatabaseReference'です。最初のケースでは、FirebaseDatabase.getInstance()。getInstance()。getReference()。child( "objects") 'と2番目の' FirebaseDatabase.getInstance()。getReference()。child( "history")child "オブジェクト") '。ですから、 'history'には' objects'オブジェクト全体があります。 –

+0

それはできますが、私が探しているものではありません。履歴ブランチは、私がやりたいことではなく、一例でした。私は他のブランチの中にオブジェクトをコピーし、ブランチオブジェクトのレコードを保持する必要があります。 – RaulGM

関連する問題