-1
我正在寻找一种方法,通过将路径传递给返回字节数据的静态函数来从我的FirebaseStorage下载文件。我已经试过这样的事情得到一个位图:创建一个返回StorageReference字节的静态函数
public static Bitmap getBitmapFromStringPath(String path)
{
final Bitmap[] bitmap = new Bitmap[1];
StorageReference storage = FirebaseStorage.getInstance().getReference(path);
storage.getBytes(1024 * 1024).addOnSuccessListener(new OnSuccessListener<byte[]>() {
@Override
public void onSuccess(byte[] bytes) {
bitmap[0] = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}
});
return bitmap[0];
}
当然不如预期(所有收益都为空),因为火力地堡是一个实时的服务,但我敢肯定,有一些解决方法,此不工作实现我正在寻找的东西。我需要简单而简单的事情。
我已经改变了这一切,而不是更新的ImageView和看起来不错。我也试过做Tasks.await(),但失败了。我不介意阻止UI线程,所以你可以提出什么建议呢? –
您可能不介意阻止UI线程,但您的用户可以。这就是为什么Android会在您检测到并显示“应用程序未响应”对话框时检测到它的原因。有关此方面的单独答案(使用实时数据库,但它同样适用于云存储),请参阅:https://stackoverflow.com/questions/33203379/setting-singleton-property-value-in-firebase-listener –
I已经尝试了很多等待,信号量和倒计时,没有运气。我设法使用HTTP GET调用获取数据,但这无法帮助我使用设备缓存的Firebase数据:( 我会放弃....但应该有未来的同步操作..谢谢你的帮助弗兰克 –