从fireBase获取包含List <string>的复杂对象的值

时间:2019-05-16 13:33:12

标签: android list firebase firebase-realtime-database

我有一个包含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);
            }

enter image description here

1 个答案:

答案 0 :(得分:0)

更新您的setCustodian()方法。应该接受List<String>而不是String。

所以您必须像下面这样更新

 public void setCustodian(List<String> custodian) {
      this.custodian=custodian;
 }

我希望它能解决您的问题。