android - firebase database reading nested list error -


i trying read following data structure

   {   "posts" : {     "-kropyvvmlkrxjix1fhd" : {       "appliedusers" : {         "flaged" : false,         "latitude" : 0,         "longitude" : 0,         "noflags" : 0,         "noposts" : 0,         "rating" : 0       },       "salary" : "5454564",       "title" : "زسروس",     }   },   "users" : {     "########" : {       "birthdate" : "8-18-1995",       "flaged" : false,       "image" : "https://scontent.xx.fbcdn.net/v/t1.0-1/p100x100/11018975_10153075514031013_8079824273778693128_n.jpg?oh=7d4a511abf155a65cda6dde4bfe7b180&oe=59f52e95",       "latitude" : 30.784419,       "longitude" : 30.987274,       "name" : "aya mohamed hamed",       "noflags" : 0,       "noposts" : 0,       "rating" : 0,       "uid" : "########",       "userphone" : "01007211319"     }   } } 

using following pojo

public class job {  public map<string, user> appliedusers = new hashmap<>(); private string title; private string salary; // empty public constructor // constructor // public getters , setters per each property 

and user pojo class

public class user  {      private string uid;     private string image;     private string name;     private string birthdate;     private string userphone;     private long rating;     private int noposts;     private int noflags;     private string address;     private double longitude;     private double latitude;     private boolean isflaged; // empty public constructor // constructor // public getters , setters per each property} 

my read jobs function is:

 public static void getalljobs(jobsdatachangelistener jobsdatachangelistener) {         postsdbref = firebasedatabase.getinstance().getreference("posts");         postsdbref.addchildeventlistener(new childeventlistener() {             @override             public void onchildadded(datasnapshot datasnapshot, string s) {                 arraylist<job> jobs = new arraylist<>();                 logging.log(""+datasnapshot.getvalue());                 job job = datasnapshot.getvalue(job.class);                 jobs.add(job);                 jobsdatachangelistener.onjobsdatachange(jobs, 1);             }             @override             public void onchildchanged(datasnapshot datasnapshot, string s) {             }             @override             public void onchildremoved(datasnapshot datasnapshot) {             }             @override             public void onchildmoved(datasnapshot datasnapshot, string s) {             }             @override             public void oncancelled(databaseerror databaseerror) {                 log.i(getclass().getname().tostring(), ": " + databaseerror.getmessage());             }         });      } 

the function retrieving posts fine until inserted applied users map pojo object, each time try read jobs/posts, following issue

com.google.firebase.database.databaseexception: can't convert object of type java.lang.long type com.jobease.www.jobease.models.user

the data under appliedusers not match definition in code.

appliedusers   flaged: false   latitude: 0 

in code you're mapping to:

public map<string, user> appliedusers = new hashmap<>(); 

you didn't share definition of user, seems unlikely it's type allows both boolean (for flaged) , number (for latitude).

when you're trying read job, client throws error because can't convert 0 user object.

update

if have under appliedusers single user, definition should be:

public class job {     public user appliedusers;     private string title;     private string salary;     ... 

Comments

Popular posts from this blog

Is there a better way to structure post methods in Class Based Views -

performance - Why is XCHG reg, reg a 3 micro-op instruction on modern Intel architectures? -

jquery - Responsive Navbar with Sub Navbar -