2017-12-20 16 views
0

あるノードから別のノードにデータを移動する方法については、私は助けが必要です。ですから、私のデータベースのスクリーンショットです。 https://imgur.com/a/26kSLFirebaseのあるノードから別のノードに複数の子ノードを移動するにはどうすればよいですか?

「マスターシート」ノードから「イベント」ノードにデータを転送する必要があります。この場合、「Marathon」というイベント名の追加についての部分は無視することができます。 「マスターシート」ノードの下では、「名前」は常に「2」、「電子メール」は「3」などであると見なすことができます。

私は個々の子供を転送する方法を知っていますが、特に参加者ごとにプッシュIDを生成することで複数の子供を転送する方法がわかりません。私を助けてください。ここで

は、私が持っているコードです:これが何をしているか

DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("masterSheet"); //Open DBRef to raw data 

ref.addValueEventListener((new ValueEventListener() { 
     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      for(DataSnapshot data: dataSnapshot.getChildren()){ 

       for(int i = 2; i<=5; i++) 
       { 
        String val = data.child(String.valueOf(i)).getValue().toString(); 
        String email = data.child("3").getValue().toString(); 

        /* 
        Check if the email field is correct as that is very important 
        */ 
        if(email.isEmpty() || !email.contains("@")) 
        { 

        } 

        else 
        { 
         switch(i){ 

          /* 
          Based on the node, assign seperate column names and write in the appropriate values 
          */ 
          case 2: 
           DatabaseReference Participants_name_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Name"); 
           Participants_name_ref.setValue(val); 
           break; 
          case 3: 
           DatabaseReference Participants_email_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Email"); 
           Participants_email_ref.setValue(val); 
           break; 
          case 4: 
           DatabaseReference Participants_CountryCode_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Country Code"); 
           Participants_CountryCode_ref.setValue(val); 
           break; 
          case 5: 
           DatabaseReference Participants_Phone_no_ref = FirebaseDatabase.getInstance().getReference().child("Events").child(event_key).child("participants").child("Phone Number"); 
           Participants_Phone_no_ref.setValue(val); 
           break; 
          default: 
           break; 




         } 

は50個のエントリが存在する場合、それが唯一の50番目のエントリの名前、電子メールのID、国コードと電話番号を保存している、ということです残りの49をスキップします。

答えて

0

ノードから別のノードにデータを移動するソリューションは次のとおりです。 Firebase魔法move()方法を提供していないので、あなたはそれを自分で行う必要があり、流れはこれです:

  1. mastersheetノード上でリスナーを接続します。
  2. ループでDataSnapshotオブジェクトすべての子供を取得します。
  3. eventsノードのリファレンスを取得します。
  4. マスターシートデータを含むオブジェクトをsetValue()メソッドの引数として渡し、そのメソッドを参照で直接使用します。
  5. 重要なことに、古い場所からデータを削除することを忘れないでください。
+0

あなたはそれらの子供たちを移動できましたか? –

関連する問題