如何解决方法getDownloadUrl()
Posted
技术标签:
【中文标题】如何解决方法getDownloadUrl()【英文标题】:How to resolve method getDownloadUrl() [duplicate] 【发布时间】:2019-02-08 11:43:51 【问题描述】:Uri resultUri = result.getUri();
String current_user_id= mCurrentUser.getUid();
StorageReference filepath = mImageStorage.child("profile_image").child(current_user_id+".jpg");
filepath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>()
@Override
public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task)
if(task.isSuccessful())
String download_url = task.getResult().getDownloadUrl().toString();
mUserDatabase.child("image").setValue(download_url).addOnCompleteListener(new OnCompleteListener<Void>()
@Override
public void onComplete(@NonNull Task<Void> task)
if(task.isSuccessful())
mProgressDialog.dismiss();
Toast.makeText(SettingsActivity.this,"Success upploading.",Toast.LENGTH_LONG).show();
);
else
Toast.makeText(SettingsActivity.this,"error on upploading.",Toast.LENGTH_LONG).show();
mProgressDialog.dismiss();
);
【问题讨论】:
无法解决问题。请清楚getDownloadUrl
在task.getResult()
上不再可用,但现在必须在StorageReference filepath
上调用。请参阅此处的 Firebase 文档:firebase.google.com/docs/storage/android/… 或更简单的代码:***.com/questions/51056397/…
【参考方案1】:
试试这个:
filepath.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>()
@Override
public void onSuccess(Uri uri)
//Do what you need to do with the URL
).addOnFailureListener(new OnFailureListener()
@Override
public void onFailure(@NonNull Exception exception)
// Handle any errors
);
【讨论】:
【参考方案2】:您必须在getDownloadUrl()
之后添加addOnSuccessListener()
,然后在onSuccess()
方法中获取url 字符串。
【讨论】:
以上是关于如何解决方法getDownloadUrl()的主要内容,如果未能解决你的问题,请参考以下文章