Firebase DatabaseException: Failed To Convert Value Of Type Java.lang.Long To String Failed to convert value of type java.lang.Long to String

is the error I keep getting when following the docs in attempting to retrieve data to an object for use.

Here is my object model

public class User {

    private String tour_director_key;
    private String last_name;
    private String location_latitude;
    private String tour_id;
    private String photo;
    private String tour_director_name;
    private String middle_name;
    private String location_longitude;
    private String passenger_id;
    private long location_updated;
    private String tour_director;
    private String email;
    private String first_name;
    private String mobile_phone;
    private String td_id;

    public User() {
        // empty default constructor, necessary for Firebase to be able to deserialize users

    public String getTour_director_key() {
        return tour_director_key;
    public String getLast_name() {
        return last_name;
    public String getLocation_latitude() {
        return location_latitude;
    public String getTour_id() {
        return tour_id;
    public String getPhoto() {
        return photo;
    public String getTour_director_name() {
        return tour_director_name;
    public String getMiddle_name() {
        return middle_name;
    public String getLocation_longitude() {
        return location_longitude;
    public String getPassenger_id() { return passenger_id; }
    public String getMobile_phone() { return mobile_phone; }
    public long getLocation_updated() {
        return location_updated;
    public String getTour_director() {
        return tour_director;
    public String getEmail() {
        return email;
    public String getFirst_name() {
        return first_name;
    public String getTd_id() { return td_id; }


Data on firebase for user:

IMG HERE and finally the code & line I get the error on is commented.

  Query userDataQuery = Constants.USER_REF.orderByKey().equalTo(mUserId);

  userDataQuery.addValueEventListener(new ValueEventListener() {
      public void onDataChange(DataSnapshot dataSnapshot) {
         for (DataSnapshot postSnapshot : dataSnapshot.getChildren()) {
             //// ERROR COMES FROM THE LINE BELOW ////
             User currentUser = postSnapshot.getValue(User.class);
             Log.i("THE_CURRENT_USER:::", currentUser.toString());
             Log.i("THE_USERS_EMAIL:::", currentUser.getEmail());


Full Stacktrace:

Process:, PID: 7453 Failed to convert value of type java.lang.Long to String
    at Source)
    at Source)
    at Source)
    at Source)
    at$zza.zze(Unknown Source)
    at$zza.zzcc(Unknown Source)
    at Source)
    at Source)
    at Source)
    at Source)
    at Source)
    at Source)
    at$ Source)
    at android.os.Handler.handleCallback(
    at android.os.Handler.dispatchMessage(
    at android.os.Looper.loop(
    at java.lang.reflect.Method.invoke(Native Method)


The problem is that you are creating the property "mobile_phone" as a String and on Firebase it is a Long type.


private String mobile_phone;


private Long mobile_phone;