如何在Android firebase存储中获取上次上传图像的路径?

如何在Android firebase存储中获取上次上传图像的路径?,android,firebase,firebase-storage,Android,Firebase,Firebase Storage,我已经学会了如何从图库中选择图像,如何将其上载到firebase存储,以及如何在ActivityResult中显示它,一切都很好。我的问题是,当我重新启动活动时,映像消失了。这是我的代码: @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); i

我已经学会了如何从图库中选择图像,如何将其上载到firebase存储,以及如何在ActivityResult中显示它,一切都很好。我的问题是,当我重新启动活动时,映像消失了。这是我的代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == PICK_PHOTO && resultCode == RESULT_OK) {
        Uri uri = data.getData();

        StorageReference photoStorageReference = storageReference.child("Photos").child(uri.getLastPathSegment());
        String path = storageReference.getPath(); //get the path of the last uploaded image
        photoStorageReference.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
            @Override
            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Uri downloadUri = taskSnapshot.getDownloadUrl();
                Picasso.with(StorageActivity.this).load(downloadUri).fit().centerCrop().into(imageView);
            }
        });
    }
}
工作非常完美,但是当我从
onCreate
调用该方法时,使用
路径而不是
“Photos/46”
如下所示:

private void displayLastImage() {
    StorageReference newStorageReference = storageReference.child("Photos/car.jpg");
    Glide.with(this).using(new FirebaseImageLoader()).load(newStorageReference).into(imageView);
}
private void displayLastImage() {
    StorageReference newStorageReference = storageReference.child(path);
    Glide.with(this).using(new FirebaseImageLoader()).load(newStorageReference).into(imageView);
}
我收到以下错误:
java.lang.IllegalArgumentException:childName不能为null或空
。如何获取上次上传图像的
路径
,以便正确显示


提前谢谢

上载图像时,将其存储在基于用户从库中选择的图像的路径上

String path = storageReference.getPath();
重新启动“活动”时,该路径尚未初始化,因此您试图在未知路径中查找映像

这意味着您需要“记住”活动调用之间的路径。您可以将其存储在应用程序的共享首选项中。这些是在活动之间持久化的


更常见的是将映像路径(或其下载URL)存储在云存储中,如Firebase数据库。您可以在中看到一个例子。

我已将图像路径存储在Firebase数据库中,现在可以正确检索它。工作完美!非常感谢你,弗兰克!