2016-09-17 8 views
2

com.google.firebase.database.DatabaseExceptionにタイプがjava.lang.Longの値を変換できませんでした: Firebase DatabaseExceptionの:文字列

文字列にタイプがjava.lang.Longの 値を変換できませんでした。

は、使用するためにオブジェクトにデータを取得しようとする際にドキュメントに従うときに覚えているエラーです。私はコメントしている上でエラーを取得する IMG HERE

、最終的にはコード&行:

は、ここに私のオブジェクトモデルのユーザーのためのfirebase上

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; } 

} 

データです。

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

    userDataQuery.addValueEventListener(new ValueEventListener() { 
     @Override 
     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()); 

      ... 

のフルスタックトレース:

FATAL EXCEPTION: main 
Process: app.timto.co.app, PID: 7453 
com.google.firebase.database.DatabaseException: Failed to convert value of type java.lang.Long to String 
                       at com.google.android.gms.internal.zzaln.zzcc(Unknown Source) 
                       at com.google.android.gms.internal.zzaln.zzb(Unknown Source) 
                       at com.google.android.gms.internal.zzaln.zza(Unknown Source) 
                       at com.google.android.gms.internal.zzaln.zzb(Unknown Source) 
                       at com.google.android.gms.internal.zzaln$zza.zze(Unknown Source) 
                       at com.google.android.gms.internal.zzaln$zza.zzcc(Unknown Source) 
                       at com.google.android.gms.internal.zzaln.zzd(Unknown Source) 
                       at com.google.android.gms.internal.zzaln.zzb(Unknown Source) 
                       at com.google.android.gms.internal.zzaln.zza(Unknown Source) 
                       at com.google.firebase.database.DataSnapshot.getValue(Unknown Source) 
                       at app.timto.co.app.AttendanceActivity$1$1.onDataChange(AttendanceActivity.java:112) 
                       at com.google.android.gms.internal.zzaie.zza(Unknown Source) 
                       at com.google.android.gms.internal.zzaje.zzcta(Unknown Source) 
                       at com.google.android.gms.internal.zzajh$1.run(Unknown Source) 
                       at android.os.Handler.handleCallback(Handler.java:739) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

答えて

1

問題は、文字列としてプロパティ「mobile_phone」を作成しているということで、Firebaseにそれはロングタイプです。

変更:

private String mobile_phone; 

へ:

private Long mobile_phone; 
3

チェックあなたのゲッターとクラス/モデルがfirebaseデータベース内のequalsある場合。

メソッドがの場合、getValue()は、シグネチャが同じであれば比較します。

例:私たちは、get値のためにGetLong
enter image description here

がfirebaseデータベースに enter image description here

を取得したクラスで
関連する問題