java - Java Firestore 查询快照返回字符串而不是布尔值
问题描述
我正在尝试将我的查询结果从firestore
回映射到我的 java 应用程序中的一个类。
我已将其保存为Boolean
web 控制台上,请参见图像:
然后在应用程序上,我使用以下函数将其映射到我的班级:
query.get().addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
@Override
public void onComplete(@NonNull Task<QuerySnapshot> task) {
List<uk.wefix.FirestoreModels.Job> mJobsList = new ArrayList<>();
if(task.isSuccessful()){
for(QueryDocumentSnapshot document : task.getResult()) {
uk.wefix.FirestoreModels.Job job = document.toObject(uk.wefix.FirestoreModels.Job.class);
mJobsList.add(job);
}
mjobsAdaptor.clear();
mjobsAdaptor.addAll(mJobsList);
} else {
Log.d("JobsFragment", "Error getting documents: ", task.getException());
}
}
});
它映射到的类:
public class Job {
public String first_name;
public String second_name;
public String phone_number;
public Boolean complete;
public Job() {}
public Job(String first_name, String second_name, String phone_number, Boolean complete) {
this.first_name = first_name;
this.second_name = second_name;
this.phone_number = phone_number;
this.complete = complete;
}
/**
* @return String
*/
public String getFirst_name(){
return first_name;
}
/**
* @return String
*/
public String getSecond_name(){
return second_name;
}
/**
* @return String
*/
public String getPhone_number(){
return phone_number;
}
/**
* @return Boolean
*/
public Boolean getComplete(){
return complete;
}
}
似乎 Firestore 正在返回 aString
而不是 aBoolean
这意味着我得到以下错误:
java.lang.RuntimeException: Could not deserialize object. Failed to convert value of type java.lang.String to boolean (found in field 'complete')
显然我可以在课堂上做这样的事情Job
,但这似乎有点hacky,我不确定这只是一个错误还是我做错了什么。
潜在的“hacky”解决方案
/**
* @return Boolean
*/
public Boolean getComplete(){
if(complete.equals("true")){
return true;
}else{
return false;
}
}
询问:
CollectionReference jobs = db.collection("jobs");
Query query = jobs.whereEqualTo("technician_id", 10).whereEqualTo("date", "2018-12-12");
解决方案
推荐阅读
- javascript - 在 React Native 中使用 Text numberOfLines 道具时正确显示更多/更少
- python - 在 Python 中循环遍历列表时比较上一个值和下一个值
- android - AWS Translate 不适用于发布构建 APK
- r - 从数据框转换向量
- python - 替换字符串中的多个空格后,正则表达式字符串不匹配
- c# - 在异步方法中更新 DataTables 内容不会正确刷新绑定的 DataGridView
- reactjs - 使用 useState 和 useEffect 过滤处于状态的项目列表中的项目
- c++ - Boost::variant 与引用相同变体的对象
- vue.js - 为 Vue Web 组件使用外部样式表/防止内联样式
- go - 在从函数返回期间访问地图时强制返回 2 个值