@EgorItChainik

Не происходит передача данных в firebase storage как исправить?

Я прописал код для передачи фото и текста на firebase но передача не происходит почему?
private ImageView imageprofilregmen;
    private EditText nameEditmen;
    private Button buttonsavenamemen;
    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_men);
        imageprofilregmen = (ImageView) findViewById(R.id.imageprofilregmen);
        nameEditmen = (EditText) findViewById(R.id.nameEditmen);
        buttonsavenamemen = (Button) findViewById(R.id.buttonsavenamemen);
        storageprofilpicsRef = FirebaseStorage.getInstance().getReference().child("ProfileImage");
        storage = FirebaseStorage.getInstance();
        mAuth = FirebaseAuth.getInstance();
        databaseReference = FirebaseDatabase.getInstance().getReference().child("UserMen-men");


        buttonsavenamemen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (checker.equals("clicked")) {
                    ValidateControler();
                } else {

                }
            }
        });
        imageprofilregmen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                checker = "clicked";
                CropImage.activity().setAspectRatio(1, 1).start(NameMenActivity.this);
            }
        });
        getUserInfo();
    }

    private void ValidateControler() {
        if (TextUtils.isEmpty(nameEditmen.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",nameEditmen.getText().toString());
                        userMap.put("image",myUri);

                        databaseReference.child(mAuth.getCurrentUser().getUid()).updateChildren(userMap);
                        progressDialog.dismiss();

                        startActivity(new Intent(NameMenActivity.this,HomeActivity.class));
                    }
                }
            });
        }
        else {
            Toast.makeText(this, "Изображение не выбрано", Toast.LENGTH_SHORT).show();
        }
    }



    private void getUserInfo() {
        databaseReference.child(mAuth.getCurrentUser().getUid()).addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                if (snapshot.exists()&&snapshot.getChildrenCount()>0)
                {
                    String name=snapshot.child("name").getValue().toString();
                    nameEditmen.setText(name);
                    if (snapshot.hasChild("image")) {
                        String image = snapshot.child("image").getValue().toString();
                        Picasso.get().load(image).into(imageprofilregmen);
                    }
                }
            }

            @Override
            public void onCancelled(@NonNull DatabaseError error) {

            }
        });
    }
}

Использовал библиотеки cropperimage, picasso. Progress dialog грузит но ничего не происходит а ещё когда выбрал картинку говорит изображение не выбрано.
Почему не происходит передача,и как это исправить?
  • Вопрос задан
  • 47 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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