android - 从 fireBase 获取包含 List 的复杂对象的值
问题描述
我有包含 List 的对象,当我尝试从 firebase - 数据库中取回值时,出现错误:“com.google.firebase.database.DatabaseException:无法将 java.util.ArrayList 类型的值转换为字符串”
该对象的 setValue 没有任何问题,当前保存数据。
这是 "warrant" 对象中列表的 set&get 方法:
public class SearchLocation implements Serializable {
private List<String> custodian;
public void setCustodian(String custodianUid) {
if(custodian == null)
custodian = new ArrayList<>();
custodian.add(custodianUid);
}
public List<String> getCustodian() {
return custodian;
}
}
这就是我试图获得淡水河谷的方式:
DB_Service.getData(evidenceRef, new OnGetDataListener() {
@Override
public void onSuccess(DataSnapshot dataSnapshot) {
searchLocations = new ArrayList<>();
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
SearchLocation searchLocation = snapshot.getValue(SearchLocation.class);
searchLocation.setUid(snapshot.getKey());
searchLocations.add(searchLocation);
}
解决方案
更新你的setCustodian()
方法。它不应该接受List<String>
String 。
所以你必须像下面这样更新
public void setCustodian(List<String> custodian) {
this.custodian=custodian;
}
我希望它能解决你的问题。
推荐阅读
- javascript - how to display mutiple autocomplete value in a textbox after a successful ajax
- javascript - Three.js Importing gltf without a background
- python - 使用 Python 打印最长的字母子序列
- python - What is the difference between - and --- operators?
- elasticsearch - Elasticsearch fuzziness and multiple terms comparison
- php - 访问驻留在同一服务器上的 laravel 应用程序内的另一个 laravel 应用程序的会话和 cookie
- php - get_meta_tags() throwing error failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden
- javascript - 在表单上按 enter 提交我的输入文本,如果我添加提交按钮它只会刷新页面
- javascript - 存在无效类时更改字段占位符文本
- eclipse-plugin - 产品中缺少片段