Last active
August 7, 2020 06:49
-
-
Save crazy-diya/e99f8b05cf5b855786cf45ef95ff2738 to your computer and use it in GitHub Desktop.
Easy way insert or upload only image in to fairbase database storge to in Android Studio Java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.example.learningfirebase; | |
import android.content.ContentResolver; | |
import android.content.Intent; | |
import android.net.Uri; | |
import android.os.Bundle; | |
import android.view.View; | |
import android.webkit.MimeTypeMap; | |
import android.widget.Button; | |
import android.widget.ImageView; | |
import android.widget.ProgressBar; | |
import android.widget.Toast; | |
import androidx.annotation.Nullable; | |
import androidx.appcompat.app.AppCompatActivity; | |
import com.google.android.gms.tasks.OnSuccessListener; | |
import com.google.firebase.storage.FirebaseStorage; | |
import com.google.firebase.storage.StorageReference; | |
import com.google.firebase.storage.StorageTask; | |
import com.google.firebase.storage.UploadTask; | |
public class ImageStore extends AppCompatActivity { | |
Button load,save; | |
ImageView imageView; | |
ProgressBar progressBar; | |
StorageReference storageReference; | |
private StorageTask storageTask;; | |
public Uri imguri; | |
@Override | |
protected void onCreate(@Nullable Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.store_image); | |
storageReference = FirebaseStorage.getInstance().getReference("Images"); | |
load = (Button) findViewById(R.id.img_btn_load); | |
imageView = (ImageView) findViewById(R.id.imageView2); | |
save = (Button) findViewById(R.id.img_btn_save); | |
progressBar = (ProgressBar) findViewById(R.id.progressBar4); | |
progressBar.setVisibility(View.INVISIBLE); | |
load.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
FileChooser(); | |
} | |
}); | |
save.setOnClickListener(new View.OnClickListener() { | |
@Override | |
public void onClick(View v) { | |
progressBar.setVisibility(View.VISIBLE); | |
if (storageTask != null && storageTask.isInProgress()){ | |
Toast.makeText(ImageStore.this, "Upload is Progress", Toast.LENGTH_SHORT).show(); | |
}else{ | |
FileUploader(); | |
} | |
} | |
}); | |
} | |
/**Start the image save to Firebase Storage in the database*/ | |
private String getExtension(Uri uri){ | |
ContentResolver contentResolver = getContentResolver(); //using for get the extention in image. | |
MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton(); | |
return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri)); | |
} | |
private void FileUploader() { | |
storageTask = storageReference.child(System.currentTimeMillis()+"."+getExtension(imguri)).putFile(imguri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { | |
@Override | |
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { | |
progressBar.setVisibility(View.INVISIBLE); | |
Toast.makeText(ImageStore.this, "Image Uploaded Successfully!", Toast.LENGTH_SHORT).show(); | |
} | |
}); | |
} | |
/**End the image save to Firebase Storage in the database*/ | |
/**Start Access the mobile file location for get the image and set the image into image view*/ | |
private void FileChooser() { | |
Intent intent = new Intent(Intent.ACTION_GET_CONTENT); | |
intent.setType("image/*"); | |
//intent.setAction(Intent.ACTION_GET_CONTENT); | |
startActivityForResult(intent,1); | |
} | |
@Override | |
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { | |
super.onActivityResult(requestCode, resultCode, data); | |
if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null) | |
{ | |
imguri = data.getData(); | |
imageView.setImageURI(imguri); | |
} | |
} | |
/**End Access the mobile file location for get the image and set the image into image view*/ | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Thanks