ফায়ারবেস (Firebase)-এর Storage সেবা ব্যবহার করে আপনি অ্যাপ্লিকেশনে ফাইল আপলোড করতে পারেন। যখন ইউজার একটি ফাইল আপলোড করেন, তখন আপনার অ্যাপ্লিকেশনটি ফাইলের আপলোড প্রগ্রেস ট্র্যাক করতে পারে এবং সেই ফাইলের প্রিভিউ দেখাতে পারে। Firebase Storage-এর সাথে রিয়েলটাইম ফাইল আপলোড প্রগ্রেস এবং প্রিভিউ শো করার জন্য ফায়ারবেস Storage API ব্যবহার করা হয়।
এখানে ফাইল আপলোডের প্রগ্রেস এবং প্রিভিউ দেখানোর বিস্তারিত প্রক্রিয়া দেওয়া হলো।
Realtime ফাইল আপলোড প্রগ্রেস
Firebase Storage-এ ফাইল আপলোডের সময়, আপনি uploadTask ব্যবহার করে আপলোডের প্রগ্রেস ট্র্যাক করতে পারেন। এর মাধ্যমে আপনি আপলোডের প্রগ্রেস দেখতে পারবেন এবং ইউজারকে প্রগ্রেস বার বা কোন ইন্ডিকেটর দিয়ে আপলোড স্টেটাস জানাতে পারবেন।
১. ফাইল আপলোডের জন্য Firebase Storage সেটআপ
প্রথমে, আপনার অ্যাপে Firebase Storage সেটআপ করা থাকতে হবে। অ্যান্ড্রয়েড অ্যাপের জন্য build.gradle ফাইলে Firebase Storage লাইব্রেরি যোগ করুন:
dependencies {
implementation 'com.google.firebase:firebase-storage:20.0.0'
}
২. ফাইল আপলোড প্রগ্রেস ট্র্যাক করা
নিচে উদাহরণ দেওয়া হলো যেখানে আপনি একটি ফাইল Firebase Storage-এ আপলোড করছেন এবং আপলোডের প্রগ্রেস ট্র্যাক করছেন।
// Firebase Storage instance তৈরি
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReference();
// আপলোড করতে চাওয়া ফাইল
Uri file = Uri.fromFile(new File("path/to/your/file"));
StorageReference fileRef = storageRef.child("uploads/" + file.getLastPathSegment());
// আপলোড টাস্ক তৈরি করা
UploadTask uploadTask = fileRef.putFile(file);
// আপলোড প্রগ্রেস ট্র্যাক করা
uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
// আপলোড প্রগ্রেস ট্র্যাক করা
double progress = (100.0 * taskSnapshot.getBytesTransferred()) / taskSnapshot.getTotalByteCount();
Log.d("Upload", "Upload is " + progress + "% done");
// ইউজার ইন্টারফেসে প্রগ্রেস দেখানোর জন্য:
// আপনার প্রগ্রেস বার আপডেট করতে পারেন
progressBar.setProgress((int) progress);
}
})
.addOnPausedListener(new OnPausedListener<UploadTask.TaskSnapshot>() {
@Override
public void onPaused(UploadTask.TaskSnapshot taskSnapshot) {
Log.d("Upload", "Upload is paused");
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("Upload", "Upload failed", e);
}
})
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Log.d("Upload", "Upload successful");
}
});
এখানে:
putFile()মেথডের মাধ্যমে ফাইল আপলোড করা হচ্ছে।addOnProgressListener()ব্যবহার করে আপলোডের প্রগ্রেস ট্র্যাক করা হচ্ছে।- আপনি progressBar.setProgress() ব্যবহার করে ইউজার ইন্টারফেসে প্রগ্রেস দেখাতে পারেন।
ফাইল প্রিভিউ দেখানো
ফাইল প্রিভিউ দেখানোর জন্য, সাধারণত ছবি এবং ভিডিও ফাইলের জন্য আপনাকে ব্যবহারকারীকে তা প্রিভিউ করার সুযোগ দিতে হয়। Firebase Storage-এ আপলোড করা ফাইলের URL নিয়ে আপনি সেই ফাইলের প্রিভিউ দেখাতে পারেন।
১. ছবি প্রিভিউ দেখানো
Firebase Storage থেকে একটি ছবি ডাউনলোড করার জন্য, প্রথমে আপনাকে ফাইলের download URL প্রাপ্ত করতে হবে। এরপরে সেই URL ব্যবহার করে আপনি ImageView-এ ছবিটি প্রদর্শন করতে পারেন।
// Firebase Storage instance তৈরি
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference storageRef = storage.getReference();
// আপলোড করা ফাইলের রেফারেন্স
StorageReference fileRef = storageRef.child("uploads/sample_image.jpg");
// ফাইলের ডাউনলোড URL পাওয়া
fileRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// ডাউনলোড URL পাওয়া গিয়েছে
String downloadUrl = uri.toString();
// Glide বা Picasso ব্যবহার করে ইমেজ প্রিভিউ
Glide.with(getApplicationContext())
.load(downloadUrl)
.into(imageView); // imageView হলো আপনার ImageView UI কম্পোনেন্ট
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("Firebase", "Error getting download URL", e);
}
});
এখানে getDownloadUrl() মেথড ব্যবহার করে ফাইলের ডাউনলোড URL পাওয়া হচ্ছে, এবং তারপর সেই URL দিয়ে Glide বা Picasso লাইব্রেরির মাধ্যমে ইমেজ প্রিভিউ দেখানো হচ্ছে।
২. ভিডিও প্রিভিউ দেখানো
ভিডিও ফাইল প্রিভিউ দেখানোর জন্যও একইভাবে ডাউনলোড URL ব্যবহার করা হয়, তবে ভিডিও প্লে করার জন্য আপনাকে একটি VideoView ব্যবহার করতে হবে।
// ফাইলের ডাউনলোড URL পাওয়া
fileRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
// ভিডিও ফাইলের URL প্রাপ্ত
String downloadUrl = uri.toString();
// VideoView তে ভিডিও প্রিভিউ দেখানো
videoView.setVideoURI(Uri.parse(downloadUrl));
videoView.start(); // ভিডিও প্লে শুরু করা
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.e("Firebase", "Error getting video URL", e);
}
});
এখানে setVideoURI() ব্যবহার করে ভিডিও ফাইলটি VideoView-এ প্লে করা হচ্ছে।
সারাংশ
ফায়ারবেস Storage ব্যবহার করে আপনি রিয়েলটাইমে ফাইল আপলোড প্রগ্রেস ট্র্যাক করতে এবং সেই ফাইলের প্রিভিউ দেখাতে পারেন। UploadTask এবং OnProgressListener ব্যবহার করে ফাইল আপলোডের প্রগ্রেস ট্র্যাক করা হয়, এবং getDownloadUrl() মেথডের মাধ্যমে আপলোড করা ফাইলের প্রিভিউ ইউজারকে দেখানো যায়। ছবির জন্য Glide বা Picasso এবং ভিডিওর জন্য VideoView ব্যবহার করে প্রিভিউ দেখানো সম্ভব। এই সুবিধাগুলো আপনার অ্যাপ্লিকেশনকে আরও ইন্টারঅ্যাকটিভ এবং ইউজার-ফ্রেন্ডলি করে তোলে।
Read more