2016-09-17 29 views
2

com.google.firebase.database.DatabaseException:未能類型java.lang.Long中的 值轉換爲字符串火力地堡DatabaseException:未能類型java.lang.Long中的值轉換爲字符串

是在嘗試將數據檢索到對象以供使用時跟隨文檔時所持續發生的錯誤。

這裏是我的對象模型

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

} 

的火力點數據用戶: IMG HERE

最後的代碼&行我得到的評論的錯誤。

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」作爲一個字符串和火力地堡這是一個漫長的類型。

變化:

private String mobile_phone; 

要:

private Long mobile_phone; 
3

檢查您的getter和類/模型在火力數據庫等號。

當方法.getValue()檢索數據時,比較簽名是否相同。

例如:
在課堂上,我們有一個getLong
enter image description here

爲獲取價值火力數據庫中檢索 enter image description here