xamarin.android - 从 Firebase 存储中检索图像
问题描述
我正在尝试从 Firebase 存储中提取图像,这样我就可以使用图像的 URL 将其放入 Imageview 中。我找到的大多数答案都与 android studio 有关,xamarin 没有答案。这是我到目前为止的代码:
storage = FirebaseStorage.Instance;
storageRef = storage.GetReferenceFromUrl("gs://......com");
StorageReference ImageFolder = storageRef.Child("Images");
StorageReference UserFolder = ImageFolder.Child(auth.CurrentUser.Email);
StorageReference UserImage = storageRef.Child("profile pic");
我可以上传到firebase存储没问题,它的检索部分就是问题所在。在 Firebase 存储中,我有文件夹 Images/userEmail/profilePic。
任何有人可以指出我的方向或任何帮助的链接或文档将非常感谢。
解决方案
您可以实现IOnSuccessListener
接口并在方法中得到结果,OnSuccess
如下所示:
让您的活动实现IOnSuccessListener
接口:
public class YourActivity: Activity, IOnSuccessListener, IOnFailureListener
{
...
}
使用下载文件并在回调Android.Gms.Tasks.Task
中设置为 imageview :OnSuccess
StorageReference ImageFolder = storageRef.Child("Images");
StorageReference UserFolder = ImageFolder.Child(auth.CurrentUser.Email);
StorageReference UserImage = UserFolder.Child("profile pic");
StorageReference testRef = UserImage.Child("test.jpg");
Task downloadtask = testRef.GetBytes(1200 * 800);
downloadtask.AddOnSuccessListener(this);
downloadtask.AddOnFailureListener(this);
public void OnFailure(Java.Lang.Exception e)
{
Log.WriteLine(LogPriority.Debug, "storage", "Failed:" + e.ToString());
}
public void OnSuccess(Java.Lang.Object result)
{
Log.WriteLine(LogPriority.Debug, "storage", "success!");
if (downloadtask != null)
{
var data = downloadtask.Result.ToArray<byte>();
Bitmap bitmap = BitmapFactory.DecodeByteArray(data, 0, data.Length);
imageview.SetImageBitmap(bitmap);
downloadtask = null;
}
}
有几种方法可以做到这一点
,你可以参考FireBase
推荐阅读
- aws-api-gateway - 如何使 AWS API Gateway 请求路径不区分大小写
- node.js - nodejs优先处理
- c++ - MSBuild输入参数配置
- php - 如果被阻止,请勿包含在通配符搜索中
- php - Apache 2.4 VirtualHost 无法通过“NO-IP”工作
- c# - 从 lambda 表达式中提取属性链
- javascript - 为什么我在 IE 中得到空引用错误,但在 Firefox 中没有?
- php - 如何获得 get_the_content 字数限制
- java - 如何将 JsonIgnoreProperties 与超类合并?
- ios - UIButton 图像不可点击