有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将图像上传到firebase

我已经为我的应用程序创建了一个配置文件。我希望用户能够从手机上存储的图像中选择一幅图像,然后将个人资料图片更新到firebase中。我可以切换到配置文件图片并放入imageView,但是当我关闭配置文件并返回时,图像没有保存到配置文件中,而是上传到firebase

更新个人资料图片的代码:

private void showImageChooser() {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent, "Select Profile Image"), CHOOSE_IMAGE);
}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == CHOOSE_IMAGE && resultCode == RESULT_OK && data != null && data.getData() != null) {
        uriProfileImage = data.getData();

        //try {
            //Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uriProfileImage);
            //imageView.setImageBitmap(bitmap);


            Glide.with(this)
                    .load(uriProfileImage)
                    .apply(new RequestOptions()
                    .placeholder(R.drawable.icon_camera))
                    .into(imageView);



            uploadImageToFirebaseStorage();

        //} catch (IOException e) {
           // e.printStackTrace();
        }
    }


private void uploadImageToFirebaseStorage() {
    StorageReference profileImageRef =
            FirebaseStorage.getInstance().getReference("profilepics/" + System.currentTimeMillis() + ".jpg");

    if (uriProfileImage != null) {
        progressBar.setVisibility(View.VISIBLE);
        profileImageRef.putFile(uriProfileImage)
                .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                    @Override
                    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                        progressBar.setVisibility(View.GONE);
                        profileImageUrl = taskSnapshot.getMetadata().getReference().getDownloadUrl().toString();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        progressBar.setVisibility(View.GONE);
                        Toast.makeText(ProfileActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
    }
}

上传用户信息:

imageView.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            showImageChooser();
        }

    });

    loadUserInformation();

    findViewById(R.id.buttonSave).setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            saveUserInformation();
        }
    });

加载用户信息

private void loadUserInformation() {
    final FirebaseUser user = mAuth.getCurrentUser();

    if (user != null) {
        if (user.getPhotoUrl() != null) {
            Glide.with(this)
                    .load(user.getPhotoUrl().toString())
                    .into(imageView);
        }

        if (user.getDisplayName() != null) {
            editText.setText(user.getDisplayName());
        }

        if (user.isEmailVerified()) {
            textView.setText("Email Verified");
        } else {
            textView.setText("Email Not Verified (Click to Verify)");
            textView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    user.sendEmailVerification().addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            Toast.makeText(ProfileActivity.this, "Verification Email Sent", Toast.LENGTH_SHORT).show();
                        }
                    });
                }
            });
        }
    }
}

共 (0) 个答案