我正在使用firebase提供的基本的unity firebase存储文档。
实施代码后,出现错误提示
'StorageMetadata.DownloadUrl'已过时:'StorageMetadata.DownloadUrl已弃用。请改为使用StorageReference.GetDownloadUrlAsync()代替”(CS0619)[Assembly-CSharp]
之后,我将代码更改为
string download_url = storage_ref.Child("ss.jpg").GetDownloadUrlAsync().ToString();
在我的代码中
images_ref.PutFileAsync(local_file).ContinueWith((Task<StorageMetadata> task) =>
{
if(task.IsFaulted || task.IsCanceled)
{
Debug.Log(task.Exception.ToString());
status.text = "Uo-oh, an error occurred!";
}
else
{
// Metadata contains file metadata such as size, content-type, and download URL.
Firebase.Storage.StorageMetadata metadata = task.Result;
Debug.Log("Finished uploading...");
//string download_url = metadata.DownloadUrl.ToString(); // This shows error
//Changed as
string download_url = storage_ref.Child("ss.jpg").GetDownloadUrlAsync().ToString();
Debug.Log("download url = " + download_url);
}
});
,但是使用此方法时,它不会返回该URL的字符串
它返回:
download url = System.Threading.Tasks.Task`1 [System.Uri]
上传图片后,我需要获取图片的downloadURL字符串值。请帮忙。
谢谢。
答案 0 :(得分:1)
就像大多数Firebase方法GetDownloadUrlAsync()
一样,其名称已经说成async
并返回Task<Uri>
。
与之前一样,您应该使用ContinueWith()
storage_ref.Child("ss.jpg").GetDownloadUrlAsync().ContinueWith((Task<Uri> uriTask) =>
{
string download_url = uriTask.Result.ToString();
Debug.Log(download_url);
});
其中result
的类型为Uri