將文件上傳到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)? –