2017-12-20 3 views
0

한 노드에서 다른 노드로 데이터를 이동하는 방법에 대한 도움이 필요합니다. 그래서, 여기 내 데이터베이스의 스크린 샷입니다. https://imgur.com/a/26kSLFirebase에서 하나의 노드에서 다른 노드로 여러 자식들을 어떻게 이동합니까?

'mastersheet'노드에서 'events'노드로 데이터를 전송해야합니다. 이 경우 "Marathon"이라는 이벤트 이름을 추가하는 부분은 무시할 수 있습니다. "mastersheet"노드에서 "Name"은 항상 "2", "email"은 "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 항목의 이름, 이메일 ID, 국가 코드 및 전화 번호 저장 50 개 항목이있는 경우 나머지 49는 건너 뜁니다.

답변

0

노드에서 다른 노드로 데이터를 이동하는 솔루션은 다음과 같습니다. 중포 기지 마법 move() 방법을 제공하지 않기 때문에, 당신은 그것을 스스로 할 필요 흐름은 이것이다 :

  1. mastersheet 노드에 리스너를 연결합니다.
  2. 루프 모든 어린이를 얻으려면 DataSnapshot 개체입니다.
  3. events 노드에 대한 참조를 가져옵니다.
  4. 마스터 시트 데이터가 들어있는이 개체를 인수로 setValue() 메서드에 전달하고 해당 메서드를 참조에서 직접 사용합니다.
  5. 가장 중요한 점은 이전 위치에서 데이터를 삭제하는 것을 잊지 마세요.
+0

자녀를 이전 할 수 있었습니까? –