无法将 java.lang.String 类型的对象转换为 android.net.Uri 类型,获取对象值



我在Firebase数据库上有一个user node,用于保存每个用户的个人资料图片的网址。问题是在Firebase上它是一个字符串,而在我的代码上,该属性是一个Uri

我知道使用Uri.parse()将字符串从 Firebase 转换为 Uri 很容易 但我的问题是是否可以将此string映射到具有Uri属性的对象

public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if(dataSnapshot.exists()) {
for(DataSnapshot data : dataSnapshot.getChildren()) {
User user = data.getValue(User.class); // Can't convert String to Uri
contactList.add(user);
}
}
}

如您所见,在这种情况下,我不能只是解析它。有什么解决方法吗?在确定有任何其他更好的解决方案之前,我不想更改我的User对象

不需要使用getValue(class)将类实例传递到实时数据库以从快照中获取数据。 如果需要一些自定义映射来将数据导入对象,则可以简单地使用 data.getValue(( 访问快照中的数据,而无需任何参数。 如果您查询的子项有其他子项,它将返回一个Map<String, Object>。 映射的键将是子项的名称,值将是数据。 然后,如果需要,可以将任何字符串转换为 Uri。

最新更新