Я пытаюсь закодировать 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 для всех родителей изменяются на тот элемент, который я только что загрузил.
Мой upload.class:
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 для всех родителей.