اذهب إلى المحتوى
  • 0

مشكلة في جلب بيانات من firebase في اندرويد

احمد صوالحة

السؤال

احاول جلب بيانات من الـfirebase لكن يظهر لدي الخطأ التالي:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.luvtas.campingau, PID: 11763
    com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.luvtas.campingau.Model.CamperSiteModel
        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:436)
        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)
        at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertToCustomClass(CustomClassMapper.java:80)
        at com.google.firebase.database.DataSnapshot.getValue(DataSnapshot.java:203)
        at com.luvtas.campingau.Fragment.ExploreFragment$3.onDataChange(ExploreFragment.java:128)
        at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
        at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
        at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6494)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

هذا هو الكود:

private RecyclerView recyclerView;
    private CamperSiteAdapter camperSiteAdapter;
    private List<CamperSiteModel> camperSiteModel;
    EditText seatch_bar;
private void readCampSite(){
        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Cte");
        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if(seatch_bar.getText().toString().equals("")){
                    camperSiteModel.clear();
                    for(DataSnapshot snapshot : dataSnapshot.getChildren()){
                        CamperSiteModel camperSiteModel1 = snapshot.getValue(CamperSiteModel.class);
                        camperSiteModel.add(camperSiteModel1);
                    }
                    camperSiteAdapter.notifyDataSetChanged();
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError error) {
            }
        });
    }

كود الـmodel:

 public CamperSiteModel() {
    }
    public CamperSiteModel(String camperSiteID, String camperSiteName, String camperSiteImage, String camperSiteType, String camperSiteDistance, String camperSiteInfo, String camperSiteSummary, String camperSiteAddress, String camperSiteLatitude, String camperSiteLongitude, String camperSitePrice1, String camperSitePrice2, String camperSiteEmail, String camperSiteSub) {
        CamperSiteID = camperSiteID;
        CamperSiteName = camperSiteName;
        CamperSiteImage = camperSiteImage;
        CamperSiteType = camperSiteType;
        CamperSiteDistance = camperSiteDistance;
        CamperSiteInfo = camperSiteInfo;
        CamperSiteSummary = camperSiteSummary;
        CamperSiteAddress = camperSiteAddress;
        CamperSiteLatitude = camperSiteLatitude;
        CamperSiteLongitude = camperSiteLongitude;
        CamperSitePrice1 = camperSitePrice1;
        CamperSitePrice2 = camperSitePrice2;
        CamperSiteEmail = camperSiteEmail;
        CamperSiteSub = camperSiteSub;
    }

فما هي المشكلة ؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

لحل المشكلة يرجى حذف الـfor loop ليكون الكود كالتالي:

if(seatch_bar.getText().toString().equals("")){
  camperSiteModel.clear();
  CamperSiteModel camperSiteModel1 = dataSnapshot.getValue(CamperSiteModel.class);
  camperSiteModel.add(camperSiteModel1);
  camperSiteAdapter.notifyDataSetChanged();
  }

هكذا سيتم جلب البيانات حسب المودل CamperSiteModal.class

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...