2016-11-20 14 views
6

सहेजने में असमर्थ मैं फ़ायरबेस रीयलटाइम डेटाबेस में कोई ऑब्जेक्ट नहीं जोड़ सका। मैंने निम्नलिखित कोड की कोशिश की। लेकिन जब इस कोड निष्पादितएंड्रॉइड फायरबेस डेटाबेस: ऑब्जेक्ट

db.child("Users").setValue(person); 

मेरे ऐप

public class Person{ 
    String fname; 
    String lname; 
    Person() 
    {} 
    Person(String fname,String lname) 
    { 
     this.fname = fname; 
     this.lname = lname; 
    } 

    public String getFname() { 
     return fname; 
    } 

    public String getLname() { 
     return lname; 
    } 
} 

दुर्घटनाओं यहाँ त्रुटि हुई।

11-20 15: 34: 57.762 2752-2752/shazdroid.com.surveyapp ई/AndroidRuntime: गंभीर अपवाद: मुख्य प्रक्रिया: shazdroid.com.surveyapp, पीआईडी: 2752 com.google.firebase .database.DatabaseException: विवादित नाम के लिए गेटर्स मिला: isChangingConfigurations com.google.android.gms.internal.zzamy $ zza पर (अज्ञात स्रोत) com.google.android.gms.internal.zzamy.zzj पर अज्ञात स्रोत) com.google.android.gms.internal.zzamy.zzca (अज्ञात स्रोत) com.google.android पर । com.google.android.gms.internal.zzamy.zzca पर अज्ञात स्रोत gms.internal.zzamy.zzch (अज्ञात स्रोत) com.google.android.gms.internal.zzamy $ zza.zzci (अज्ञात स्रोत) पर) com.google.android.gms.internal.zzamy.zzbz पर (अज्ञात स्रोत) com.google.firebase.database.DatabaseReference.zza (अज्ञात स्रोत) पर com.google.firebase.database.DatabaseReference.setValue पर (अज्ञात स्रोत) shazdroid.com.surveyapp.AddMember.savePerson (AddMember.java:207) पर shazdroid.com.surveyapp.AddMember.access $ 000 (AddMember.java:37) shazdroid.com.surveyapp पर पर। AddMember $ 6.onClick (जोड़े सदस्य.जावा:193) atroid.view.View.performClick (View.java:5610) एंड्रॉइड.व्यू पर। देखें $ClClick.run (View.java222260) atroid.os.Handler.handleCallback (हैंडलर.जावा:751) एंड्रॉइड.ओएस.एंडलर.dispatchMessage (हैंडलर.जावा:95) एंड्रॉइड.ओएस.एलओपर.एलओपी (Looper.java:154) atroid.app.ActivityThread.main (गतिविधि थ्रेड। जावा: 6077) java.lang.reflect.Method.invoke (मूल निवासी विधि) पर com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:865) com.android.internal पर पर। os.ZygoteInit.ma में (ZygoteInit.java:755)

यहां यह है कि मैं ऑब्जेक्ट को कैसे सहेज रहा हूं।

private void savePerson() { 
    suc.show(); 
    Person person = new Person("shahbaz","ansari"); 
    db.child("User").setValue(person) 
      .addOnCompleteListener(AddMember.this, new OnCompleteListener<Void>() { 
     @Override 
     public void onComplete(@NonNull Task<Void> task) { 
      if(task.isSuccessful()) 
      { 
       suc.dismissWithAnimation(); 
       suc = new SweetAlertDialog(AddMember.this,SweetAlertDialog.SUCCESS_TYPE); 
       suc.setTitleText("Successful"); 
       suc.setContentText("Saving data successful"); 
       suc.setConfirmText("OK"); 
       suc.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { 
        @Override 
        public void onClick(SweetAlertDialog sweetAlertDialog) { 
         sweetAlertDialog.dismissWithAnimation(); 
        } 
       }).show(); 
      }else{ 
       suc.dismissWithAnimation(); 
       suc = new SweetAlertDialog(AddMember.this,SweetAlertDialog.ERROR_TYPE); 
       suc.setTitleText("Failed"); 
       suc.setContentText("Failed to save data"); 
       suc.setConfirmText("Try Again"); 
       suc.setConfirmClickListener(new SweetAlertDialog.OnSweetClickListener() { 
        @Override 
        public void onClick(SweetAlertDialog sweetAlertDialog) { 
         savePerson(); 

        } 
       }); 
       suc.setCancelText("cancle"); 
       suc.setCancelClickListener(new SweetAlertDialog.OnSweetClickListener() { 
        @Override 
        public void onClick(SweetAlertDialog sweetAlertDialog) { 
         sweetAlertDialog.dismissWithAnimation(); 
        } 
       }).show(); 
      } 
     } 
    }); 

उत्तर

16

स्टैक ट्रेस, isChangingConfigurations लिए संदर्भित करता है जो Activity की एक विधि का नाम है। यह शायद इंगित करता है कि आपने गतिविधि के आंतरिक वर्ग के रूप में कक्षा Person घोषित कर दी है। जब फायरबेस Person क्रमबद्ध करता है तो यह संलग्न गतिविधि वर्ग को क्रमबद्ध करने की कोशिश करता है और विफल रहता है।

पैकेज स्तर पर Person की घोषणा को ले जाएं या घोषणा को एक स्थिर आंतरिक श्रेणी बनाने के लिए बदलें: public static class Person

+0

और मैं डेटा को सहेजने की तारीख सहित एक व्यक्ति, नाम, आयु, आईडी इत्यादि की जानकारी का समूह कैसे बचा सकता हूं ताकि मैं किसी भी व्यक्ति के डेटा को दी गई तारीख के अनुसार पुनर्प्राप्त कर सकूं? –

संबंधित मुद्दे