Firebase থেকে PDF ফাইল রিট্রিভ করার জন্য Android এপ্লিকেশন তৈরি করার ধাপসমূহ
Firebase Realtime Database ব্যবহার করে একটি Android অ্যাপ্লিকেশন তৈরি করার ধাপে ধাপে বর্ণনা দেওয়া হলো, যেখানে আমরা একটি PDF ফাইল Firebase থেকে রিট্রিভ করব এবং এটি অ্যাপে দেখাব। আমরা দুটি Activity তৈরি করব, একটিতে একটি বাটন থাকবে এবং অন্যটিতে PDF ফাইলটি দেখা যাবে। নিচে প্রতিটি ধাপ বিশদভাবে ব্যাখ্যা করা হয়েছে।
Step 1: নতুন প্রজেক্ট তৈরি করুন
Android Studio তে নতুন প্রজেক্ট তৈরি করার জন্য How to Create/Start a New Project in Android Studio এ রেফার করুন। প্রোগ্রামিং ল্যাঙ্গুয়েজ হিসাবে Java নির্বাচন করুন।
Step 2: আপনার অ্যাপটি Firebase এর সাথে সংযুক্ত করুন
নতুন প্রজেক্ট তৈরি করার পরে, উপরের টুলস অপশনে যান এবং Firebase এ ক্লিক করুন। ডান দিকের কলামে Firebase Realtime Database এ নেভিগেট করুন। Connect now এ ক্লিক করে আপনার অ্যাপটি Firebase এর সাথে সংযুক্ত করুন। এরপর, Add Firebase Realtime Database to your app অপশনে ক্লিক করুন এবং আপনার অ্যাপটি Firebase এর সাথে সংযুক্ত হবে।
Step 3: build.gradle ফাইল আপডেট করুন
আপনার অ্যাপ Firebase এর সাথে সংযুক্ত হয়েছে কিনা যাচাই করুন। build.gradle ফাইলটি খুলুন এবং নিচের ডিপেন্ডেন্সি যুক্ত করুন:
implementation 'com.google.firebase:firebase-database:19.6.0'
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
এরপর, প্রজেক্টটি Sync করুন।
Step 4: AndroidManifest.xml ফাইলে ইন্টারনেট পারমিশন যোগ করুন
AndroidManifest.xml ফাইলে নিচের পারমিশনগুলি যোগ করুন:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Step 5: activity_main.xml ফাইলটি আপডেট করুন
activity_main.xml ফাইলটি নিচের কোড দ্বারা আপডেট করুন:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<!-- We will click on it to view pdf -->
<Button
android:id="@+id/view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:background="@color/black"
android:padding="10dp"
android:text="Click here to View pdf"
android:textSize="10dp" />
</LinearLayout>
Step 6: MainActivity.java ফাইলটি আপডেট করুন
MainActivity.java ফাইলটি নিচের কোড দ্বারা আপডেট করুন:
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
public class MainActivity extends AppCompatActivity {
Button view;
DatabaseReference database;
String message;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = findViewById(R.id.view);
// Initialising the reference to database
database = FirebaseDatabase.getInstance().getReference().child("pdf");
database.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
// getting a DataSnapshot for the location at the specified
// relative path and getting in the link variable
message = dataSnapshot.getValue(String.class);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
Toast.makeText(MainActivity.this, "Error Loading Pdf", Toast.LENGTH_SHORT).show();
}
});
// After clicking here alert box will come
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(final View v) {
CharSequence options[] = new CharSequence[]{
"Download",
"View",
"Cancel"
};
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setTitle("Choose One");
builder.setItems(options, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (which == 0) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(message));
startActivity(intent);
}
if (which == 1) {
Intent intent = new Intent(v.getContext(), ViewPdfActivity.class);
intent.putExtra("url", message);
startActivity(intent);
}
}
});
builder.show();
}
});
}
}
Step 7: ViewpdfActivity.java ফাইলটি তৈরি করুন
নতুন ViewpdfActivity ক্লাস তৈরি করুন। How to Create New Activity in Android Studio এ রেফার করুন এবং activity এর নাম ViewpdfActivity দিন।
Step 8: activity_view_pdf.xml ফাইলটি আপডেট করুন
activity_view_pdf.xml ফাইলটি নিচের কোড দ্বারা আপডেট করুন:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".ViewPdfActivity">
<com.github.barteksc.pdfviewer.PDFView
android:id="@+id/abc"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Step 9: ViewpdfActivity.java ফাইলটি আপডেট করুন
ViewpdfActivity.java ফাইলটি নিচের কোড দ্বারা আপডেট করুন:
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import com.github.barteksc.pdfviewer.PDFView;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
public class ViewPdfActivity extends AppCompatActivity {
String urls;
PDFView pdfView;
ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_view_pdf);
pdfView = findViewById(R.id.abc);
dialog = new ProgressDialog(this);
dialog.setMessage("Loading..");
dialog.show();
urls = getIntent().getStringExtra("url");
new RetrivePdfStream().execute(urls);
}
class RetrivePdfStream extends AsyncTask {
@Override
protected InputStream doInBackground(String... strings) {
InputStream inputStream = null;
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
if (urlConnection.getResponseCode() == 200) {
inputStream = new BufferedInputStream(urlConnection.getInputStream());
}
} catch (IOException e) {
return null;
}
return inputStream;
}
@Override
protected void onPostExecute(InputStream inputStream) {
pdfView.fromStream(inputStream).load();
dialog.dismiss();
}
}
}
Step 10: Firebase এ PDF আপলোড এবং রিয়েলটাইম ডাটাবেজে লিংক যুক্ত করুন
Firebase এ যান এবং Storage অপশনে ক্লিক করুন। Get Started এ ক্লিক করে PDF আপলোড করুন। আপলোড করার পর, PDF এর details থেকে access token কপি করুন।
Step 11: রিয়েলটাইম ডাটাবেজে ডেটা যুক্ত করুন
Firebase এর Realtime Database অপশনে যান এবং ডেটা যুক্ত করুন। নিচের স্ক্রিনশট অনুসরণ করুন:

Firebase ডাটাবেজে ডেটা যুক্ত করার পর এটি নিচের মত দেখাবে:

সব ধাপ সম্পন্ন করার পরে, আপনার অ্যাপ প্রস্তুত হবে এবং আপনি Firebase থেকে PDF ফাইল দেখতে এবং ডাউনলোড করতে সক্ষম হবেন।
Post a Comment