在上传到Firebase Storage之前重命名图片

时间:2018-02-27 15:13:57

标签: java android firebase firebase-storage

用户选择的图片为 selectedImage 。我的程序在其唯一的昵称文件夹下上传用户的图片。例如,如果大卫上传了一张图片,它就会出现在“david”文件夹下,但我希望每个上传的图片能够使用相同的文件名。目标:如果大卫上传1张图片然后再上传另一张图片,第二张图片将替换第一张图片,因为它们都有相同的文件名。我尝试 renameTo ,但是它上传到 david / imagename / old.jpg下的新文件夹

我希望它像这样 david / pic.jpg 就是这样。这些解决方案都不适合我:

public void uploadImage2(){
        String file_path = selectedImage.getLastPathSegment();
        File from = new File(file_path,"old");
        File to = new File("pic");
        from.renameTo(to);
        //create reference to images folder and assing a name to the file that will be uploaded
        imageRef = storageRef.child(getNickname() + "/" + from.getAbsolutePath());

2 个答案:

答案 0 :(得分:2)

要解决此问题,每次将新图片上传到Firebase存储时,都会为用户文件夹下的每个图片生成唯一ID。要实现这一点,您只需使用push()方法即可。来自offical documentation

  

创建对自动生成的子位置的引用。

答案 1 :(得分:2)

我开始工作,只是写作

imageRef = storageRef.child(getNickname() + "/pic");