当使用Glide4.9.0(最新的)将图像从StorageReference加载到ImageView时,我遇到了问题。
卡在PlaceHolder上了。当我试着把我的裁判的可下载网址放进去的时候,它就起作用了..
StorageReference ref = FirebaseStorage.getInstance().getReference().child("myImage")
//It's not working
Glide.with(mContext)
.load(ref)
.placeholder(R.drawable.ic_loading_circle)
.error(R.drawable.ic_loading_circle)
.into(mImageView);
//It's working
ref.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>()
{
@Override
public void onSuccess(Uri downloadUrl)
{
Glide.with(mContext)
.load(downloadUrl.toString())
.placeholder(R.drawable.ic_loading_circle)
.error(R.drawable.ic_loading_circle)
.into(mImageView);
}
});
我没有看到任何错误使用尝试-捕捉,我已经把互联网的许可在Manifest.其他来自绘图的图像也在工作。
注意:我的防火墙是由2个应用程序使用,第一个应用程序没有任何问题的幻灯片,但这第二个应用程序有未知的问题。
有什么解决办法或替代办法吗?因为使用getDownloadUrl().addOnSuccessListener获取URI非常慢
发布于 2019-05-28 14:53:03
为您工作的解决方案是正确的解决方案。我也是这么做的。
profileListener = new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String imageUrl = dataSnapshot.getValue(String.class);
if (ProfileFragment.this.getActivity() != null)
Glide.with(ProfileFragment.this.getActivity())
.load(imageUrl)
.placeholder(R.drawable.default_image)
.circleCrop()
.into(photoPhoto);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
};
如果您发现这件事进展缓慢,只需在firebase中启用脱机持久性即可。
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
在应用程序打开时调用任何FirebaseDatabase实例之前。
Firebase非常有效地管理同步。
注意:当您在开发应用程序期间发现任何随机异常调用快照时,请尝试清除应用程序的数据或重新安装。
我干得很好!
发布于 2019-05-28 21:49:58
我不认为Glide
支持StorageReference
--这是不同的协议,但是您可以使用支持这个协议的FirebaseUI,也可以使用场景Glide
库后面的FirebaseUI。
发布于 2019-09-27 07:35:55
上面的答案对我没有用。
在Glide 4.8.0
中,这是对我有用的东西:
build.gradle
中有以下内容
implementation 'com.firebaseui:firebase-ui-storage:3.2.2'
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
2.然后使用以下代码从存储引用加载映像
DrawableCrossFadeFactory factory =
new DrawableCrossFadeFactory.Builder().setCrossFadeEnabled(true).build();
RequestOptions options =
new RequestOptions()
.centerCrop()
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.placeholder(R.drawable.your_progress_animation)
.error(R.drawable.ic_your_on_error_image);
// Download directly from StorageReference using Glide
// (See MyAppGlideModule for Loader registration)
Glide.with(getAppContext())
.load(item.reference)
.transition(withCrossFade(factory))
.apply(options)
.into(holder.signatureImageView);
https://stackoverflow.com/questions/56340764
复制相似问题