Android অ্যাপে কীভাবে Firebase Phone Number Verification ব্যবহার করা শুরু করবেন তা এই পৃষ্ঠায় বর্ণনা করা হয়েছে। এই ফিচারের সাধারণ বিবরণের জন্য এক নজরে দেখুন।
এই পৃষ্ঠার ধাপগুলি অনুসরণ করে, আপনি দ্রুত Firebase PNV-এর জন্য ইউজার ফ্লো প্রয়োগ করা শুরু করতে পারেন। পরীক্ষা করার উদ্দেশ্যে, আপনি একটি শুধুমাত্র-পরীক্ষার-জন্য টোকেন তৈরি করবেন যা একটি নকল ফোন নম্বরে সমাধান করে। এই টেস্ট টোকেন ব্যবহার করে, আপনি বিলিং অ্যাকাউন্ট বা আসল সিম কার্ড সহ ডিভাইস ছাড়াই আপনার অ্যাপে Firebase PNV যোগ করা শুরু করতে পারেন।
আপনার অ্যাপে Firebase PNV ব্যবহারকারীর অভিজ্ঞতা নিয়ে সন্তুষ্ট হলে, আপনার অ্যাপ প্রোডাকশনাইজ করার জন্য কিছু অতিরিক্ত ধাপ অনুসরণ করতে পারেন।
শুরু করার আগে
আপনি যদি আগে থেকে না করে থাকেন, তাহলে আপনার Android প্রোজেক্টে Firebase যোগ করুন।
আপনার অ্যাপ নিম্নলিখিত প্রয়োজনীয়তা পূরণ করছে কিনা তা ভালোভাবে দেখে নিন:
- আপনার অ্যাপের
minSdkহল ২৪ (Android 7.0) বা তার পরবর্তী যেকোনও ভার্সন। - ডিভাইস বা এমুলেটরে Android 10 (API লেভেল ২৯) বা তার পরবর্তী যেকোনও ভার্সন এবং Google Play পরিষেবা থাকতে হবে। এমুলেটরের জন্য, Android 10 বা তার পরবর্তী যেকোনও ভার্সনের সিস্টেম ইমেজ ব্যবহার করুন যেটিতে Google Play অন্তর্ভুক্ত আছে।
- প্রোডাকশনে আসল ফোন নম্বর যাচাই করতে, ডিভাইসে অবশ্যই সমর্থিত পরিষেবা প্রদানকারীর সিম ব্যবহার করতে হবে। এই পৃষ্ঠায় বর্ণিত টেস্ট মোডের জন্য আসল সিম কার্ডের প্রয়োজন নেই।
- আপনার অ্যাপের
১. আপনার অ্যাপে Firebase PNV লাইব্রেরি যোগ করুন
আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত<project>/<app-module>/build.gradle.kts বা
<project>/<app-module>/build.gradle),
Android-এর জন্য Firebase Phone Number Verification লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং নিয়ন্ত্রণ করতে আমরা
Firebase Android BoM
ব্যবহার করার সাজেশন দিই।
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:35.1.0")) // Add the dependencies for the Firebase Phone Number Verification libraries // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-pnv") }
Firebase Android BoM ব্যবহার করে, আপনার অ্যাপ সবসময় Firebase Android লাইব্রেরির মানানসই ভার্সন ব্যবহার করবে।
(বিকল্প) BoM ব্যবহার না করে Firebase লাইব্রেরি ডিপেন্ডেন্সি যোগ করুন
আপনি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নিলে, আপনাকে অবশ্যই প্রতিটি Firebase লাইব্রেরি ভার্সন এর ডিপেন্ডেন্সি লাইনে উল্লেখ করতে হবে।
মনে রাখবেন, আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করলে, আমরা লাইব্রেরি ভার্সন ম্যানেজ করার জন্য BoM ব্যবহার করার জন্য বিশেষভাবে সাজেস্ট করি, যা নিশ্চিত করে যে সব ভার্সন মানানসই।
dependencies { // Add the dependencies for the Firebase Phone Number Verification libraries // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-pnv:17.0.0") }
২. টেস্ট মোডে Firebase PNV লাইব্রেরি শুরু করুন
Firebase কনসোলে, নিরাপত্তা > ফোন নম্বর যাচাইকরণ > সেটিংস > টেস্টিং ট্যাবে যান।
টোকেন জেনারেট করুন বিকল্পে ক্লিক করুন, দেশের কোড বেছে নিন এবং তারপরে আপনার টোকেন তৈরি ও কপি করতে আবার টোকেন জেনারেট করুন বিকল্পে ক্লিক করুন।
IAM পৃষ্ঠা থেকে করা যেতে পারে।আপনার সোর্স কোডে হার্ডকোড না করেই আপনার অ্যাপের ডিবাগ বিল্ডের জন্য টোকেনটি উপলভ্য করুন। টোকেনটিকে ক্রেডেনশিয়ালের মতো বিবেচনা করুন এবং এটিকে ভার্সন কন্ট্রোলের বাইরে রাখুন। যেমন, আপনার প্রোজেক্টের
local.propertiesফাইলে এটি যোগ করুন, যা ভার্সন কন্ট্রোলে চেক করা হয় না:fpnv.testToken=COPIED_TOKEN_STRINGতারপর আপনার মডিউলের (অ্যাপ-লেভেল)
build.gradle.ktsফাইলে এটিBuildConfigফিল্ড হিসেবে এক্সপোজ করুন। নিম্নলিখিত উদাহরণটি একটিFPNV_TEST_TOKENএনভায়রনমেন্ট ভেরিয়েবেলও পড়ে, যা CI সার্ভারে উপযোগী, যেখানেlocal.propertiesফাইল নেই। রিলিজ বিল্ডে খালি ভ্যালু থাকে:// At the top of the file: import java.util.Properties val localProperties = Properties().apply { rootProject.file("local.properties").takeIf { it.exists() } ?.inputStream()?.use { load(it) } } val fpnvTestToken = System.getenv("FPNV_TEST_TOKEN")?.takeIf { it.isNotEmpty() } ?: localProperties.getProperty("fpnv.testToken", "") android { buildFeatures { buildConfig = true } buildTypes { debug { buildConfigField("String", "FPNV_TEST_TOKEN", "\"$fpnvTestToken\"") } release { buildConfigField("String", "FPNV_TEST_TOKEN", "\"\"") } } }আপনার অ্যাপে, প্রতিটি অ্যাপ প্রসেসের জন্য একবার টেস্ট সেশন চালু করুন:
Kotlin
আপনি যখনই কল করবেন,
FirebasePhoneNumberVerification.getInstance()ডিফল্টFirebaseApp-এর জন্য একই ইনস্ট্যান্স ফেরত দেয়, তাই সব Firebase PNV কলের জন্য এটি ব্যবহার করুন।প্রতিটি অ্যাপ প্রসেসে
enableTestSession()-কে একবারই কল করুন। দ্বিতীয় কলTEST_SESSION_ALREADY_ENABLEDত্রুটি কোড সহFirebasePhoneNumberVerificationExceptionথ্রো করে, তাই এটিActivityথেকে কল করবেন না, যা আবার তৈরি করা যেতে পারে (যেমন, স্ক্রিন রোটেট করার সময়)। পরিবর্তে, আপনারApplicationক্লাস থেকে এটি কল করুন:import android.app.Application import android.util.Log import com.google.firebase.pnv.FirebasePhoneNumberVerification class MyApplication : Application() { override fun onCreate() { super.onCreate() if (!BuildConfig.DEBUG) return if (BuildConfig.FPNV_TEST_TOKEN.isEmpty()) { Log.w("MyApplication", "No Firebase PNV test token; test mode is off.") return } FirebasePhoneNumberVerification.getInstance() .enableTestSession(BuildConfig.FPNV_TEST_TOKEN) } }আপনার অ্যাপ ম্যানিফেস্টে ক্লাস রেজিস্টার করুন:
<application android:name=".MyApplication" ... >
টেস্ট টোকেনের TTL ৭ দিন; এই সময়সীমা পেরিয়ে গেলে টেস্ট সেশন চালু করার জন্য আপনাকে নতুন টোকেন
জেনারেট করতে হবে। আপনি getVerifiedPhoneNumber()-এ কল না করা পর্যন্ত মেয়াদ শেষ হয়ে যাওয়া টোকেনের কারণে কোনও সমস্যা হয় না। টেস্ট টোকেন ফিজিক্যাল ডিভাইস এবং
Google Play পরিষেবা আছে এমন এমুলেটরে কাজ করে, যা আপনার অ্যাপে UX-এর প্রোটোটাইপ করার জন্য আদর্শ। আপনি যদি প্রতি ৭ দিনে অন্তত একবার টোকেন পরিবর্তন করেন, তাহলে CI/CD-তে টেস্ট করার জন্যও সেগুলি ব্যবহার করতে পারবেন।
আপনার অ্যাপ টেস্ট মোডে যে ফোন নম্বর টোকেন পায় সেগুলি প্রোডাকশন টোকেনের মতো সাইন করা থাকে, তবে সেগুলিতে "test_number": true দাবি অন্তর্ভুক্ত থাকে। আপনার প্রোডাকশন ব্যাকএন্ড যেন এই দাবি সহ টোকেন প্রত্যাখ্যান করে তা নিশ্চিত করুন।
৩. সাজেস্ট করা হয়েছে: Firebase PNV কাজ করে কিনা তা চেক করুন
অ্যাপ লঞ্চ করার সময়, নম্বর লেখার UI বা ব্যাখ্যামূলক UI কখন দেখাতে হবে তা নির্ধারণ করতে, ডিভাইস ও সিম কার্ডে Firebase PNV কাজ করে কিনা তা চেক করে নেওয়া ভাল। এটি একটি প্রি-চেক যার জন্য ব্যবহারকারীর সম্মতির প্রয়োজন হয় না। আপনি এই টেস্টের ফলাফল ব্যবহার করে সিদ্ধান্ত নিতে পারেন যে Firebase PNV ফ্লো শুরু করবেন নাকি ফোন নম্বর যাচাইকরণের জন্য কোনও বিকল্প পদ্ধতি ব্যবহার করবেন, যেমন এসএমএস।
ডিভাইসটি মানানসই কিনা তা চেক করতে, getVerificationSupportInfo()
মেথড কল করুন। আপনার টেস্ট সেশন অ্যাক্টিভ থাকাকালীন, এই পদ্ধতি সবসময় টেস্ট টোকেনের জন্য একটি মাত্র সমর্থিত এন্ট্রি সহ একটি তালিকা রিটার্ন করে,
Firebase PNV ব্যাকএন্ডের সাথে যোগাযোগ না করেই। এর অর্থ হল, টেস্ট মোডে আপনি কাজ না করা ডিভাইসের ফলব্যাক
ব্যবহার করতে পারবেন না। পরে, আপনার অ্যাপ প্রোডাকশনে নিয়ে যাওয়ার পরে, এই পদ্ধতি ডিভাইসের প্রতিটি সিমের জন্য
একটি ফলাফল রিটার্ন করবে।
Kotlin
val fpnv = FirebasePhoneNumberVerification.getInstance()
val supportInfo: Task<List<VerificationSupportResult>> = fpnv.getVerificationSupportInfo()
// Cache this value for 1 hour to avoid exceeding per-device quota.
val dcp: Task<String> = fpnv.getDigitalCredentialPayload("")
Tasks.whenAllSuccess<Any>(supportInfo, dcp)
.addOnSuccessListener { results ->
// Triggered only if BOTH tasks succeed
val supportInfo = results[0] as List<VerificationSupportResult>
val dcp = results[1] as String
if (supportInfo.any { it.isSupported() }) {
// Both checks passed. Proceed to getVerifiedPhoneNumber
// (see the next step).
}
}
.addOnFailureListener { exception ->
// Triggered if AT LEAST ONE task fails. Fallback to SMS
}
৪. যাচাইকরণ ফ্লো শুরু করুন
Firebase PNV ফ্লো শুরু করতে, getVerifiedPhoneNumber() পদ্ধতি কল করুন। একটি Activity
পাস করুন, কারণ পদ্ধতিটি সম্মতি স্ক্রিন দেখায়। Context যা
Activity নয়, যেমন আপনার Application প্রসঙ্গ, ACTIVITY_CONTEXT_REQUIRED ত্রুটি কোড সহ
ব্যর্থ হয়।
Kotlin
fpnv.getVerifiedPhoneNumber(this@MainActivity)
.addOnSuccessListener { result ->
// In test mode, this phone number will have a valid country code,
// followed by all zeros.
val phoneNumber = result.getPhoneNumber() // For display only.
val token = result.getToken()
// Verification successful. Send token to your backend, which reads
// the verified phone number from it. (See Next steps.)
}
.addOnFailureListener { e ->
// Handle failures, such as the user declining consent or a network
// error.
}
getVerifiedPhoneNumber() পদ্ধতিটি ফোন নম্বর যাচাইকরণের সম্পূর্ণ ফ্লো
সম্পন্ন করে, যার মধ্যে রয়েছে:
- Android ক্রেডেনশিয়াল ম্যানেজার ব্যবহার করে ব্যবহারকারীর ফোন নম্বর শেয়ার করার জন্য তার সম্মতি নেওয়া।
- Firebase PNV ব্যাকএন্ডে অনুরোধ করা হচ্ছে।
- ডিভাইসের জন্য যাচাই করা ফোন নম্বর সহ টোকেন ফেরত দেওয়া (প্রোডাকশন অ্যাপে, বিলিংয়ের সময় এটি ঘটে)।
৫. সমস্যা ম্যানেজ করা
Firebase PNV কল ব্যর্থ হলে, ব্যতিক্রম হল একটি
FirebasePhoneNumberVerificationException। এরপর কী করতে হবে তা ঠিক করতে এর errorCode ব্যবহার করুন, যেমন ব্যবহারকারী সম্মতি না দিলে এসএমএস যাচাইকরণে ফিরে যান। প্রতিটি ত্রুটি কোড, এটি কখন ঘটে এবং প্রস্তাবিত পদক্ষেপের জন্য Android-এ Firebase PNV ত্রুটি ম্যানেজ করুন দেখুন।
পরবর্তী ধাপ
এই পৃষ্ঠায় ইউনিফায়েড, সিঙ্গেল-কল API ব্যবহার করে কীভাবে Firebase PNV-এর সাথে ইন্টিগ্রেট করতে হয় তার বিবরণ দেওয়া আছে। একটিমাত্র মেথড কল করার মাধ্যমে সম্পূর্ণ Firebase PNV ব্যবহারকারীর ফ্লো ম্যানেজ করা যায়, যার মধ্যে ব্যবহারকারীর সম্মতি নেওয়া থেকে শুরু করে Firebase PNV ব্যাকএন্ডে প্রয়োজনীয় নেটওয়ার্ক কল করা পর্যন্ত সবকিছুই অন্তর্ভুক্ত। এই পদ্ধতি ব্যবহার করে, আপনি ইন্টিগ্রেশন ধাপগুলি কমিয়ে একটি একক মেথড কলে পরিণত করেন।
বেশিরভাগ ডেভেলপারের জন্য এই API সাজেস্ট করা হয়; তবে, আপনার যদি নির্দিষ্ট প্রয়োজনীয়তা থাকে যা লাইব্রেরি দ্বারা পূরণ হয় না, তাহলে কাস্টম ফ্লো প্রয়োগ করার বিষয়ে তথ্যের জন্য Firebase Phone Number Verification ফ্লো কাস্টমাইজ করুন পৃষ্ঠা দেখুন।
আপনি যদি অ্যাপ ক্লায়েন্টের বাইরে যাচাই করা ফোন নম্বর ব্যবহার করেন, তাহলে আপনার ফোন নম্বরের পরিবর্তে টোকেন পাস করা উচিত যাতে আপনি এটি ব্যবহার করার সময় এর সঠিকতা যাচাই করতে পারেন। Firebase PNV টোকেন যাচাই করুন দেখুন।
ব্যবহারকারীদের যাচাই করা ফোন নম্বর দিয়ে Firebase Authentication-এ সাইন-ইন করতে, Firebase Phone Number Verification ব্যবহার করে Firebase-এর মাধ্যমে যাচাই করুন দেখুন।
ধাপে-ধাপে ওয়াকথ্রু যা সম্পূর্ণ স্যাম্পেল অ্যাপ তৈরি করে, তার জন্য Firebase Phone Number Verification কোডল্যাব ব্যবহার করে দেখুন।
আপনার অ্যাপের Firebase PNV ফ্লো এবং ব্যাকএন্ড ইন্টিগ্রেশন প্রয়োগ ও পরীক্ষা করার পরে, আপনি আসল যাচাই করা ফোন নম্বর পাওয়া শুরু করার জন্য আপনার অ্যাপ প্রোডাকশনে রাখতে পারেন। প্রোডাকশন মোডে আপগ্রেড করুন দেখুন।
সম্পূর্ণ API-এর জন্য, Firebase PNV API রেফারেন্স দেখুন।