Upload profile image for a user Firebase

前端 未结 2 1172
庸人自扰
庸人自扰 2021-02-11 05:39

I am trying to add an image to the user information in the real time database(firebase) for android. I have uploaded the image on the firebase storage but how will I be able to

2条回答
  •  暗喜
    暗喜 (楼主)
    2021-02-11 05:49

    Just to update because I spent sometime to find this answer, getDownloadUrl() is NOT a function of taskSnapshot anymore. So in order to get the image URL from Firebase Storage you need to add a listener to taskSnapshot.getMetadata().getReference().getDownloadUrl()

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(requestCode==request_code&&resultCode==RESULT_OK){
            Uri uri=data.getData();
            StorageReference filepath=mStorage.child("Images").child(uri.getLastPathSegment());
            filepath.putFile(uri).addOnSuccessListener(new OnSuccessListener() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    taskSnapshot.getMetadata().getReference().getDownloadUrl()
                        .addOnSuccessListener(new OnSuccessListener() {
    
                        @Override
                        public void onSuccess(Uri uri) {
                            newStudent.child("image").setValue(uri);
    
                        }
                    });
                }
            });
        }
    }
    

    Now it's safe to use uri to whatever you want

提交回复
热议问题