project 12: image upload firebase realtime database in android studio


step 1:-

dependencies {

   // Firebase Storage

   implementation 'com.google.firebase:firebase-storage:19.1.0'

}

 

step 2:-

private static final int PICK_IMAGE_REQUEST = 1;

private Uri mImageUri;


private void openFileChooser() {

   Intent intent = new Intent();

   intent.setType("image/*");

   intent.setAction(Intent.ACTION_GET_CONTENT);

   startActivityForResult(Intent.createChooser(intent, "Select Picture"), PICK_IMAGE_REQUEST);

}

step 3:-

@Override

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

   super.onActivityResult(requestCode, resultCode, data);

   if (requestCode == PICK_IMAGE_REQUEST && resultCode == RESULT_OK

           && data != null && data.getData() != null) {

       mImageUri = data.getData();

   }

}


step 4:-

private void uploadFile() {
   if (mImageUri != null) {
       StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()
               + "." + getFileExtension(mImageUri));

       fileReference.putFile(mImageUri)
               .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                   @Override
                   public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                       fileReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                           @Override
                           public void onSuccess(Uri uri) {
                               String imageUrl = uri.toString();
                               String key = mDatabaseRef.push().getKey();
                               mDatabaseRef.child(key).setValue(imageUrl);
                           }
                       });
                   }
               })
               .addOnFailureListener(new OnFailureListener() {
                   @Override
                   public void onFailure(@NonNull Exception e) {
                       Toast.makeText(MainActivity.this, e.getMessage(), Toast.LENGTH_SHORT).show();
                   }
               });
   } else {
       Toast.makeText(this, "No file selected", Toast.LENGTH_SHORT).show();
   }
}

step 5:-
private String getFileExtension(Uri uri) {
   ContentResolver cR = getContentResolver();
   MimeTypeMap mime = MimeTypeMap.getSingleton();
   return mime.getExtensionFromMimeType(cR.getType(uri));
}

step 6:-
mButtonUpload.setOnClickListener(new View.OnClickListener() {
   @Override
   public void onClick(View v) {
       uploadFile();
   }
});


Post a Comment

Post a Comment (0)

Previous Post Next Post