Firebase DatabaseException:无法将 java.lang.Long 类型的值转换为 String [英] Firebase DatabaseException: Failed to convert value of type java.lang.Long to String
本文介绍了Firebase DatabaseException:无法将 java.lang.Long 类型的值转换为 String的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
com.google.firebase.database.DatabaseException:转换失败java.lang.Long 类型的值转为 String
com.google.firebase.database.DatabaseException: 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.
这是我的对象模型
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; }
}
用户的 firebase 数据:
Data on firebase for user:
最后是代码 &我得到错误的那一行被注释了.
and finally the code & line I get the error on is commented.
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)
推荐答案
问题是您将属性mobile_phone"创建为字符串,而在 Firebase 上它是 Long 类型.
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;
这篇关于Firebase DatabaseException:无法将 java.lang.Long 类型的值转换为 String的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文