将Firebase json转换为Java对象
自从我开始使用Firebase实时数据库以来,琐碎的任务变得越来越困难 我在Firebase数据库中有以下JSON结构将Firebase json转换为Java对象,java,firebase,firebase-realtime-database,Java,Firebase,Firebase Realtime Database,自从我开始使用Firebase实时数据库以来,琐碎的任务变得越来越困难 我在Firebase数据库中有以下JSON结构 { "EmailId": "sample.co@email.com", "Locations": { "-Kci2Ov9_lI2d5RUnvYT": { "Latitude": "17", "Longitude": "78", "RecordedDateTime": "125
{
"EmailId": "sample.co@email.com",
"Locations": {
"-Kci2Ov9_lI2d5RUnvYT": {
"Latitude": "17",
"Longitude": "78",
"RecordedDateTime": "1254"
},
"-Kci77tuFbWP5Vdt4keF": {
"Latitude": "17",
"Longitude": "78",
"RecordedDateTime": "1254"
}
},
"MobileNumber": 1234567890,
"UserName": "Firstname Lastname"
}
来自java的firebase查询返回一个DataSnapshot,我知道它包含上述结构。我有下面的Java对象,我认为它映射到上面的结构
public class User {
private String EmailId;
private String MobileNumber;
private String UserName;
private ArrayList<UserLocationInfo> userLocationInfos;
//Constructor, getters and setters are below.
}
错误:
com.google.firebase.database.DatabaseException: Failed to convert value of type java.lang.Long to String.
请告知Java类,以及为什么当Firebase将数据存储为值为字符串的json时会出现此转换错误?您的MobileNumber被保存为长值,而您正试图将其检索为字符串。您可以在POJO上更改其数据类型:
public class User {
private String EmailId;
private long MobileNumber;
private String UserName;
private ArrayList<UserLocationInfo> userLocationInfos;
//Constructor, getters and setters are below.
}
我认为,一旦数据进入键值对数据库,它就会变成一个stringYes,整个数据库就是一个JSON文件(基本上是一个结构化字符串)。但是,在写入和/或读取数据时,数据必须具有特定的数据类型。您可以看到所有支持的数据类型。内部列表是否会映射到java类中的ArrayList变量。我从未尝试在firebase上使用ArrayList,但正如@Linxy mentioed所示,您应该将其更改为
Map
change ArrayList。。。地图位置
public class User {
private String EmailId;
private long MobileNumber;
private String UserName;
private ArrayList<UserLocationInfo> userLocationInfos;
//Constructor, getters and setters are below.
}
"MobileNumber": "1234567890",
"UserName": "Firstname Lastname"