【发布时间】:2015-03-11 13:02:34
【问题描述】:
所以我的应用使用 Firebase 来存储包含头像的用户数据。我让用户从图库中选择一张图片,然后将我的 ImageView 设置为该文件的 Uri,效果很好。
当我推那个 Uri.toString();到 Firebase,然后尝试再次读取它(为了让头像在会话中持续存在),我收到“resolveUri failed on bad bitmap uri”错误。
这是我设置从图库中选择的图像的代码:
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == 1 && intent != null && resultCode == Activity.RESULT_OK) {
Uri uri = intent.getData();
Firebase usersRef = firebase.child("users").child("dummyUID").child("avatar");
usersRef.setValue(uri.getPath());
avatarIV.setImageURI(uri);
} else {
Log.d("Status:" , "Photo Picker Cancelled");
}
}
然后这是我用来尝试从 Firebase 中提取相同的 Image Uri 的代码,但失败了:
avatarRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Uri uri = Uri.parse(dataSnapshot.getValue().toString());
avatarIV.setImageURI(uri);
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});
我已经输入了日志语句来找出路径可能有什么不同,但是在两个位置都是完全相同的。
这是我在清单中拥有的权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>
我几乎尝试了其他线程中建议的所有修复方法,但均无济于事。当我从 Firebase 读取 Uri 时,我认为这是一个稍微不同的案例场景。
提前致谢, 杰夫
【问题讨论】:
标签: android json imageview uri firebase