我有一个包含List的对象,当我尝试从firebase-数据库中获取值时,出现错误:“ com.google.firebase.database.DatabaseException:无法将类型java.util.ArrayList的值转换为字符串”
该对象的setValue没问题,数据已保存。
这是“保证”对象中列表的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);
}
答案 0 :(得分:0)
更新您的setCustodian()
方法。应该接受List<String>
而不是String。
所以您必须像下面这样更新
public void setCustodian(List<String> custodian) {
this.custodian=custodian;
}
我希望它能解决您的问题。