我在将文件放入Firebase数据库时遇到了一些问题。我在这一行收到错误:String download_url = task.getResult().getDownloadUrl().toString();
,提到“错误:找不到符号方法getDownloadUrl()”。
这是代码: https://pastebin.com/ESXBiZ9a
我的Firebase依赖是:
implementation 'com.google.firebase:firebase-database:16.0.1'
implementation 'com.google.firebase:firebase-storage:16.0.1'
任何人都可以指出我必须改变的地方,也许是方法,以便工作?
答案 0 :(得分:2)
现在更改了getDownloadUrl()方法,我们现在应该将getDownloadUrl与存储引用一起使用。参见https://firebase.google.com/docs/reference/android/com/google/firebase/storage/StorageReference#getDownloadUrl()
final StorageReference filepath = mImageStorage.child("message_images").child(push_id + ".jpg");
UploadTask uploadTask = filepath.putFile(imageUri);
Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
if(!task.isSuccessful()){
throw task.getException();
}
return filepath.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
Uri downloadUri = task.getResult();
String download_url = downloadUri.toString();
.
.
.
}
答案 1 :(得分:0)
你应该喜欢这个 -
filePath.putFile(resultUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>()
{
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot)
{
String download_url = taskSnapshot.getDownloadUrl().toString();
}
}).addOnFailureListener(new OnFailureListener()
{
@Override
public void onFailure(@NonNull Exception e)
{
}
});
答案 2 :(得分:0)
我认为它将变为:
task.getResult().getStorage().getDownloadUrl().toString();