Я прописал код для передачи фото в storage чтобы разделить по категориям создал несколько разных папок. Но кроме фото хотелось бы отправлять uid пользователя и имя которое ввел пользователь. Чтобы в дальнейшем можно было писать именно нужному пользователю. Как это можно сделать?
Вот код передачи
private ImageView imageprofilreg,imageplusphoto;
private EditText nameEdit;
private Button buttonsavename;
private StorageReference storageprofilpicsRef;
private FirebaseStorage storage;
private Uri imageUri;
private String myUri = "";
private String checker = "";
private StorageTask uploadTask;
private FirebaseAuth mAuth;
private DatabaseReference databaseReference;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_name);
imageplusphoto=(ImageView) findViewById(R.id.imageplusphoto);
imageprofilreg = (ImageView) findViewById(R.id.imageprofilreg);
nameEdit = (EditText) findViewById(R.id.nameEdit);
buttonsavename = (Button) findViewById(R.id.buttonsavename);
storageprofilpicsRef = FirebaseStorage.getInstance().getReference().child("ProfileImagew");
storage = FirebaseStorage.getInstance();
mAuth = FirebaseAuth.getInstance();
databaseReference = FirebaseDatabase.getInstance().getReference().child("Userw");
buttonsavename.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (checker.equals("clicked")) {
ValidateControler();
} else {
ValidateAndSaveOnlyInfo();
}
}
});
imageplusphoto.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
checker = "clicked";
CropImage.activity().setAspectRatio(1, 1).start(NameActivity.this);
}
});
getUserInfo();
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK && data != null) {
CropImage.ActivityResult result = CropImage.getActivityResult(data);
imageUri = result.getUri();
imageprofilreg.setImageURI(imageUri);
} else {
Toast.makeText(this, "Произошла ошибка", Toast.LENGTH_SHORT).show();
}
}
private void ValidateAndSaveOnlyInfo() {
if (TextUtils.isEmpty(nameEdit.getText().toString()))
Toast.makeText(this, "Введите ние", Toast.LENGTH_SHORT).show();
else {
HashMap<String, Object> userMap = new HashMap<>();
userMap.put("uid", mAuth.getCurrentUser().getUid());
userMap.put("name", nameEdit.getText().toString());
databaseReference.child(mAuth.getCurrentUser().getUid()).updateChildren(userMap);
startActivity(new Intent(NameActivity.this, HomeActivity.class));
}
}
private void ValidateControler() {
if (TextUtils.isEmpty(nameEdit.getText().toString()))
Toast.makeText(this, "Введите ваше имя", Toast.LENGTH_SHORT).show();
else if (checker.equals("clicked")) ;
{
uploadProfilImage();
}
}
private void uploadProfilImage() {
final ProgressDialog progressDialog=new ProgressDialog(this);
progressDialog.setTitle("Идет загрузка");
progressDialog.setMessage("Пожалуйста подождите");
progressDialog.show();
if (imageUri !=null){
final StorageReference fileRef= storageprofilpicsRef.child(mAuth.getCurrentUser().getUid()+"jpg");
uploadTask=fileRef.putFile(imageUri);
uploadTask.continueWithTask(new Continuation() {
@Override
public Object then(@NonNull Task task) throws Exception {
if (!task.isSuccessful()){
throw task.getException();
}
return fileRef.getDownloadUrl();
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task <Uri>task) {
if (task.isSuccessful()){
Uri downloadUri=task.getResult();
myUri=downloadUri.toString();
HashMap<String,Object> userMap=new HashMap<>();
userMap.put("uid",mAuth.getCurrentUser().getUid());
userMap.put("name",nameEdit.getText().toString());
userMap.put("image",myUri);