@young45acp

Что можно привязать к папке в firebase storage?

Я прописал код для передачи фото в 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);
  • Вопрос задан
  • 20 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы