将文件上传到Firebase后,如何获取它的URL以便将其存储起来以备后用?我想将网址写入Firebase数据库,以便其他用户可以访问该图像。如何在将文件上传到Firebase后获取文件的URL?
我上传文件,像这样:
public void uploadFile()
{
StorageReference filepath = mstorageRef.child("folder").child(filename);
Uri File= Uri.fromFile(new File(mFileName));
filepath.putFile(File).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot)
{
Toast.makeText(MtActivity.this, "Upload Done", Toast.LENGTH_LONG).show();
}
});
}
我已经证实,这些文件其实都是上传所以现在我只需要我可以写我的数据库的URL。然而,当我试图做到这一点:
Uri downloadUrl = taskSnapshot.getMetadata().getDownloadUrl();
它给了我一个错误,说This method should only be accessed from tests or within private scope
我不知道这意味着什么,我也不知道我为什么会得到这个错误意识我正在关注Firebase提供的this example。
有没有获取URL的新方法?
此外,该项目特别是该URL是唯一的?这意味着如果我将它存储到数据库并且稍后尝试访问它,我将能够做到这一点吗?
你应该写'taskSnapshot.getDownloadUrl()',而不是'taskSnapshot.getMetadata( ).getDownloadUrl()' –
@AnggrayudiH我试过了,它给了我同样的错误信息。出于某种原因,它只是不会让我调用我的'addOnSuccessListener()'方法中的方法。 –
关于你看到的错误,你见过[这篇文章](http://stackoverflow.com/q/41105586/4625829)? –