我在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。