Upload profile image for a user Firebase

前端 未结 2 1491
南笙
南笙 2021-02-11 05:19

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:56

    You can use the method getDownloadUrl() in the success listener to access the download URL:

    @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) {
                    Uri downloadUrl = taskSnapshot.getDownloadUrl();
                    newStudent.child("image").setValue(downloadUrl);
                }
            });
        }
    }
    

    As an aside, instead of using push(), I recommend storing the user's data with the uid as the key. This will make your data easier to find.

    private DatabaseReference newStudent;
    
    mCurrentUser=FirebaseAuth.getInstance().getCurrentUser();
                newStudent=mDatabase.child(mCurrentUser.getUid());
                newStudent.child("email").setValue(email);
                // etc
    

提交回复
热议问题