gpt4 book ai didi

java - 将 Firebase json 转换为 Java 对象

转载 作者:行者123 更新时间:2023-11-30 02:39:26 24 4
gpt4 key购买 nike

自从我开始使用 Firebase 实时数据库以来,琐碎的任务变得越来越困难。

我的 Firebase 数据库中有以下 JSON 结构。

{
"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.
}

但是每当我尝试使用以下代码将 DataSnapshot 读入此对象时,代码都会失败。

dataSnapshot.getValue(User.class)

错误:

com.google.firebase.database.DatabaseException: Failed to convert value of type java.lang.Long to String.

请就 Java 类提供建议,以及当 Firebase 将数据存储为值为字符串的 json 时,为什么我会收到此转换错误?

最佳答案

您的手机号码已保存为长值,您正尝试将其作为字符串检索。您可以在 POJO 上更改其数据类型:

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"

关于java - 将 Firebase json 转换为 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42178999/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com