将图像上传到Firebase存储会自动删除以前上传的图像

问题描述 投票:0回答:1

我正在尝试编写ProfileActivity的代码,这将使您可以选择上传带有您的名字的图像。

这是上传功能:

private void uploadFile(){


        final StorageReference fileReference = mStorageRef.child(getFileExtension(mImageUri));
        mUploadTask = fileReference.putFile(mImageUri);

        fileReference.putFile(mImageUri)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                     @Override
               public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                Toast.makeText(ProfileActivity.this, "Uploaded Successfully", Toast.LENGTH_SHORT).show();

                Upload upload = new Upload(mEditTextFileName.getText().toString().trim(),
                        taskSnapshot.getUploadSessionUri().toString().trim(), mEditTextFileName.getText().toString().trim());

                uploadID = mEditTextFileName.getText().toString().trim();
                mDatabaseRef.child(uploadID).setValue(upload);

            }
    })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(ProfileActivity.this, "No file selected", Toast.LENGTH_SHORT).show();
                    }
                });

}

我不知道怎么了。我看到所有父母的所有mImageUrl值都变为我刚刚上传的那个项目。

我的上载类:

ublic class Upload {

private String mName;
private String mImageUrl;
private String key;

public Upload(){

    //constructor
}

public Upload(String name, String imageUrl, String id){

    if (name.trim().equals("")){
        name = "No Name";
    }

    this.mName = name;
    this.mImageUrl = imageUrl;
    this.key = id;
}

我希望每次都在mEditTextFileName上上传一个具有不同名称的图像,该图像会将当前上传的图像存储在Firebase Storage中,并且不会在所有父级上更改mImageUrl值。

android firebase firebase-realtime-database firebase-storage
1个回答
0
投票

知道解决方案的人吗?找不到任何东西。

© www.soinside.com 2019 - 2024. All rights reserved.