Unity C#上传图片到Firebase Storage报CS1061错误怎么解决?
报错原因
- 错误出在
UploadImage方法的上传成功回调逻辑中,你编写的string download_url = metadata.profile_ref.ToString();属于非法调用:profile_ref是你在回调外层定义的StorageReference类型局部变量,不是Firebase官方StorageMetadata类自带的属性,所以编译器无法找到该成员,抛出CS1061错误。- 此外
StorageMetadata本身也不直接存储文件下载链接,需要调用专属接口单独获取。
修复方案
把上传成功的else分支代码替换为以下逻辑,直接调用外层作用域的profile_ref变量的GetDownloadUrlAsync方法异步获取下载地址即可:
else { // Metadata包含文件大小、内容类型等元信息 Firebase.Storage.StorageMetadata metadata = task.Result; // 直接调用外层的profile_ref变量获取下载地址,不要从metadata中读取 profile_ref.GetDownloadUrlAsync().ContinueWith(urlTask => { if (urlTask.IsCompleted && !urlTask.IsFaulted && !urlTask.IsCanceled) { string download_url = urlTask.Result.ToString(); Debug.Log("Finished uploading..."); Debug.Log("download url = " + download_url); } else { Debug.LogError("获取下载地址失败: " + urlTask.Exception.ToString()); } }); }
内容的提问来源于stack exchange,提问作者user16918038
相关产品推荐
相关产品推荐

