0
我正在自學FireBase存儲,並決定製作一個簡單的應用程序,讓用戶選擇一個圖像,然後將其上傳到Firebase。 但是,只要我選擇要上傳的圖片,我的應用程序崩潰,並且說我的URI爲空,即使我得到它從我的形象選擇無法選擇圖片並上傳?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
}
if (requestCode == 1) {
final Bundle extras = data.getExtras();
if (extras != null) {
//Get image
path = extras.getParcelable("data");
}
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
storageRef.putFile(path)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// Get a URL to the uploaded content
@SuppressWarnings("VisibleForTests") Uri downloadUrl = taskSnapshot.getDownloadUrl();
Log.e("myTag", "done, " +downloadUrl);
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Log.e("myTag", exception.toString());
}
});
}
}
我我一直試圖解決這個錯誤超過五個小時,儘管經歷了十億次文檔,我仍然感到困惑。任何幫助表示讚賞!
非常感謝你的回答!我試過了,現在我的異常變成了'無法上傳到getRoot。你應該上傳到一個存儲位置,如.getReference('image.png')。putFile ...' –
我也嘗試調整firebase中的規則,以允許閱讀和權利一如既往,但我仍然得到這個錯誤。我該怎麼辦? –
@RuchirBaronia:我更新了我的答案。創建你的引用到根的子文件夾,例如「images」:'StorageReference storageRef = FirebaseStorage.getInstance()。getReference(「images」)' –