将照片上传到Firebase存储并更新个人资料aatar

您好,基本上,当单击图像视图时,对话框会打开,我可以选择图片,但是选择图片后,应用程序会自动断开与帐户的连接,而无需上传和更新图片。

 dialog = new SpotsDialog.Builder(getcontext()).create();
    storageReference=FirebaseStorage.getInstance().getReference("image_upload");

    avatarIv.setOnClicklistener(new View.OnClicklistener() {
        @Override
        public void onClick(View v) {

            Intent intent =new Intent();
            intent.setType("image/");
            intent.setaction(intent.actION_GET_CONTENT);
            startactivityForResult(Intent.createChooser(intent,"Choisissez une image"),PICK_IMAGE_CODE);
        }
    });



 @Override
public void onactivityResult(int requestCode,int resultCode,Intent data) {
    super.onactivityResult(requestCode,resultCode,data);
    if(requestCode == PICK_IMAGE_CODE ){
        dialog.show();
        UploadTask uploadTask =storageReference.putFile(data.getData());
        Task<Uri>task= uploadTask.continueWithTask(new Continuation<UploadTask.Tasksnapshot,Task<Uri>>() {
            @Override
            public Task<Uri> then(@NonNull Task<UploadTask.Tasksnapshot> task) throws Exception {
                if (!task.isSuccessful()){
                    Toast.makeText(getactivity(),"Erreur de téléchargement",Toast.LENGTH_SHORT).show();

                }
                return  storageReference.getDownloadUrl();
            }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {
                if(task.isSuccessful()){
                    String Url =task.getResult().toString().substring(0,task.getResult().toString().indexOf("&token"));
                    Log.d("DIRECTLINK",Url);
                    Picasso.get().load(Url).into(avatarIv);
                    dialog.dismiss();
                }
            }
        });
    }
}

通过在if(requestCode == PICK_IMAGE_CODE)中使用断点 我知道了

Debug LOG

Ps:此代码是在一个片段中实现的(底部导航视图)

private static final int PICK_IMAGE_CODE = 1000;

编辑:这些是存储规则 允许读写:if request.auth!= null;

xhf5211314 回答:将照片上传到Firebase存储并更新个人资料aatar

根据您在此处发布的堆栈跟踪判断:

Stack trace

似乎您有一个classpath / classloader问题。确保所有Firebase库使用相同的版本。检查您的类路径。

请参阅此similar question

,

这对我有用

match /b/{bucket}/o {
  match /{userId} {
    match /{allPaths=**}{
     allow read 
     allow write;
    }
  }
}
本文链接:https://www.f2er.com/3063375.html

大家都在问