আপনি Firebase Authentication ব্যবহার করে একজন ব্যবহারকারীকে একটি লিঙ্ক সম্বলিত ইমেল পাঠিয়ে সাইন ইন করতে পারেন, যেটিতে ক্লিক করে তারা সাইন ইন করতে পারবেন। এই প্রক্রিয়ায়, ব্যবহারকারীর ইমেল ঠিকানাও যাচাই করা হয়।
ইমেলের মাধ্যমে সাইন ইন করার অনেক সুবিধা রয়েছে:
- কম ঘর্ষণ সাইন-আপ এবং সাইন-ইন।
- অ্যাপ্লিকেশন জুড়ে পাসওয়ার্ড পুনঃব্যবহারের ঝুঁকি কম, যা এমনকি সঠিকভাবে নির্বাচিত পাসওয়ার্ডের নিরাপত্তাও নষ্ট করতে পারে।
- একজন ব্যবহারকারীকে প্রমাণীকরণ করার ক্ষমতা এবং সেই সাথে যাচাই করার ক্ষমতা যে ব্যবহারকারীই একটি ইমেল ঠিকানার বৈধ মালিক।
- সাইন ইন করার জন্য একজন ব্যবহারকারীর শুধুমাত্র একটি অ্যাক্সেসযোগ্য ইমেল অ্যাকাউন্ট প্রয়োজন। ফোন নম্বর বা সোশ্যাল মিডিয়া অ্যাকাউন্টের মালিকানা প্রয়োজন হয় না।
- একজন ব্যবহারকারী পাসওয়ার্ড প্রদান (বা মনে রাখার) প্রয়োজন ছাড়াই নিরাপদে সাইন ইন করতে পারেন, যা মোবাইল ডিভাইসে কষ্টকর হতে পারে।
- একজন বিদ্যমান ব্যবহারকারী যিনি পূর্বে একটি ইমেল শনাক্তকারী (পাসওয়ার্ড বা ফেডারেটেড) দিয়ে সাইন ইন করেছেন, তাকে কেবল ইমেল দিয়ে সাইন ইন করতে আপগ্রেড করা যেতে পারে। উদাহরণস্বরূপ, একজন ব্যবহারকারী যিনি তাদের পাসওয়ার্ড ভুলে গেছেন তিনি এখনও তাদের পাসওয়ার্ড রিসেট না করেই সাইন ইন করতে পারেন।
শুরু করার আগে
আপনার অ্যান্ড্রয়েড প্রোজেক্ট সেট আপ করুন
যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে Firebase যোগ করুন ।
আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (সাধারণত
<project>/<app-module>/build.gradle.ktsঅথবা<project>/<app-module>/build.gradle), Android এর জন্য Firebase Authentication লাইব্রেরির জন্য নির্ভরতা যোগ করুন। লাইব্রেরি সংস্করণ নিয়ন্ত্রণ করতে আমরা Firebase Android BoM ব্যবহার করার পরামর্শ দিই।এছাড়াও, Firebase Authentication সেট আপ করার অংশ হিসেবে, আপনার অ্যাপে Google Play services SDK যোগ করতে হবে।
dependencies { // Import the BoM for the Firebase platform implementation(platform("com.google.firebase:firebase-bom:34.9.0")) // Add the dependency for the Firebase Authentication library // When using the BoM, you don't specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth")
// Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:21.5.0") }Firebase Android BoM ব্যবহার করে, আপনার অ্যাপ সর্বদা Firebase Android লাইব্রেরির সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করবে।
(বিকল্প) BoM ব্যবহার না করেই Firebase লাইব্রেরি নির্ভরতা যোগ করুন
যদি আপনি Firebase BoM ব্যবহার না করার সিদ্ধান্ত নেন, তাহলে আপনাকে প্রতিটি Firebase লাইব্রেরি সংস্করণ তার নির্ভরতা লাইনে নির্দিষ্ট করতে হবে।
মনে রাখবেন যে আপনি যদি আপনার অ্যাপে একাধিক Firebase লাইব্রেরি ব্যবহার করেন, তাহলে আমরা দৃঢ়ভাবে লাইব্রেরি সংস্করণগুলি পরিচালনা করার জন্য BoM ব্যবহার করার পরামর্শ দিচ্ছি, যা নিশ্চিত করে যে সমস্ত সংস্করণ সামঞ্জস্যপূর্ণ।
dependencies { // Add the dependency for the Firebase Authentication library // When NOT using the BoM, you must specify versions in Firebase library dependencies implementation("com.google.firebase:firebase-auth:24.0.1")
// Also add the dependency for the Google Play services library and specify its version implementation("com.google.android.gms:play-services-auth:21.5.0") }
আপনার Firebase প্রকল্পের জন্য ইমেল লিঙ্ক সাইন-ইন সক্ষম করুন
ইমেল লিঙ্কের মাধ্যমে ব্যবহারকারীদের সাইন ইন করতে, আপনাকে প্রথমে আপনার Firebase প্রকল্পের জন্য ইমেল প্রদানকারী এবং ইমেল লিঙ্ক সাইন-ইন পদ্ধতি সক্ষম করতে হবে:
- Firebase কনসোলে , Auth বিভাগটি খুলুন।
- সাইন ইন পদ্ধতি ট্যাবে, ইমেল/পাসওয়ার্ড প্রদানকারী সক্ষম করুন। মনে রাখবেন যে ইমেল লিঙ্ক সাইন-ইন ব্যবহার করার জন্য ইমেল/পাসওয়ার্ড সাইন-ইন সক্ষম থাকতে হবে।
- একই বিভাগে, ইমেল লিঙ্ক (পাসওয়ার্ডহীন সাইন-ইন) সাইন-ইন পদ্ধতি সক্ষম করুন।
- সংরক্ষণ করুন ক্লিক করুন।
ব্যবহারকারীর ইমেল ঠিকানায় একটি প্রমাণীকরণ লিঙ্ক পাঠান
প্রমাণীকরণ প্রবাহ শুরু করতে, ব্যবহারকারীকে একটি ইন্টারফেস উপস্থাপন করুন যা ব্যবহারকারীকে তাদের ইমেল ঠিকানা প্রদান করতে অনুরোধ করবে এবং তারপর sendSignInLinkToEmail এ কল করে Firebase কে ব্যবহারকারীর ইমেলে প্রমাণীকরণ লিঙ্কটি পাঠাতে অনুরোধ করবে।
ActionCodeSettings অবজেক্টটি তৈরি করুন, যা Firebase কে ইমেল লিঙ্কটি কীভাবে তৈরি করতে হয় তার নির্দেশাবলী প্রদান করে। নিম্নলিখিত ক্ষেত্রগুলি সেট করুন:
-
url: এম্বেড করার জন্য ডিপ লিঙ্ক এবং যেকোনো অতিরিক্ত অবস্থা। লিঙ্কের ডোমেনটি Firebase Console অনুমোদিত ডোমেনের তালিকায় সাদা তালিকাভুক্ত করতে হবে, যা সাইন-ইন পদ্ধতি ট্যাবে গিয়ে পাওয়া যাবে (প্রমাণীকরণ -> সাইন-ইন পদ্ধতি)। যদি ব্যবহারকারীর ডিভাইসে অ্যাপটি ইনস্টল না থাকে এবং অ্যাপটি ইনস্টল করা সম্ভব না হয় তবে লিঙ্কটি ব্যবহারকারীকে এই URL এ পুনঃনির্দেশিত করবে।
-
androidPackageNameএবংiOSBundleId: Firebase Authentication নির্ধারণ করতে সাহায্য করে যে এটি একটি ওয়েব-অনলি নাকি মোবাইল লিঙ্ক তৈরি করবে যা একটি Android বা Apple ডিভাইসে খোলা হবে। -
handleCodeInApp: সত্য হিসেবে সেট করা হয়েছে। অন্যান্য আউট অফ ব্যান্ড ইমেল অ্যাকশন (পাসওয়ার্ড রিসেট এবং ইমেল যাচাইকরণ) এর বিপরীতে সাইন-ইন অপারেশনটি সর্বদা অ্যাপেই সম্পন্ন করতে হবে। এর কারণ হল, ফ্লো শেষে, ব্যবহারকারী সাইন ইন থাকবেন এবং অ্যাপের মধ্যেই তাদের Auth অবস্থা বজায় থাকবে বলে আশা করা হচ্ছে। -
linkDomain: যখন কোনও প্রকল্পের জন্য কাস্টম Hosting লিঙ্ক ডোমেনগুলি সংজ্ঞায়িত করা হয়, তখন নির্দিষ্ট মোবাইল অ্যাপ দ্বারা লিঙ্কটি খোলার সময় কোনটি ব্যবহার করবেন তা নির্দিষ্ট করুন। অন্যথায়, ডিফল্ট ডোমেনটি স্বয়ংক্রিয়ভাবে নির্বাচিত হয় (উদাহরণস্বরূপ,PROJECT_ID .firebaseapp.com)। -
dynamicLinkDomain: অবচিত। এই প্যারামিটারটি নির্দিষ্ট করবেন না।
Kotlin
val actionCodeSettings = actionCodeSettings { // URL you want to redirect back to. The domain (www.example.com) for this // URL must be whitelisted in the Firebase Console. url = "https://www.example.com/finishSignUp?cartId=1234" // This must be true handleCodeInApp = true setIOSBundleId("com.example.ios") setAndroidPackageName( "com.example.android", true, // installIfNotAvailable "12", // minimumVersion ) }
Java
ActionCodeSettings actionCodeSettings = ActionCodeSettings.newBuilder() // URL you want to redirect back to. The domain (www.example.com) for this // URL must be whitelisted in the Firebase Console. .setUrl("https://www.example.com/finishSignUp?cartId=1234") // This must be true .setHandleCodeInApp(true) .setIOSBundleId("com.example.ios") .setAndroidPackageName( "com.example.android", true, /* installIfNotAvailable */ "12" /* minimumVersion */) .build();
ActionCodeSettings সম্পর্কে আরও জানতে, "ইমেল অ্যাকশনে পাসিং স্টেট" বিভাগটি দেখুন।
-
ব্যবহারকারীর কাছ থেকে তাদের ইমেল জিজ্ঞাসা করুন।
ব্যবহারকারীর ইমেলে প্রমাণীকরণ লিঙ্কটি পাঠান, এবং ব্যবহারকারী একই ডিভাইসে ইমেল সাইন-ইন সম্পন্ন করলে ব্যবহারকারীর ইমেলটি সংরক্ষণ করুন।
Kotlin
Firebase.auth.sendSignInLinkToEmail(email, actionCodeSettings) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Email sent.") } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); auth.sendSignInLinkToEmail(email, actionCodeSettings) .addOnCompleteListener(new OnCompleteListener<Void>() { @Override public void onComplete(@NonNull Task<Void> task) { if (task.isSuccessful()) { Log.d(TAG, "Email sent."); } } });
ইমেল লিঙ্ক ব্যবহার করে সাইন ইন সম্পূর্ণ করুন
নিরাপত্তা উদ্বেগ
অনিচ্ছাকৃত ব্যবহারকারী হিসেবে অথবা অনিচ্ছাকৃত ডিভাইসে সাইন-ইন করার জন্য কোনও সাইন-ইন লিঙ্ক ব্যবহার করা থেকে বিরত রাখতে, Firebase Authentication জন্য সাইন-ইন প্রবাহ সম্পূর্ণ করার সময় ব্যবহারকারীর ইমেল ঠিকানা প্রদান করা প্রয়োজন। সাইন-ইন সফল হওয়ার জন্য, এই ইমেল ঠিকানাটি অবশ্যই সাইন-ইন লিঙ্কটি মূলত যে ঠিকানায় পাঠানো হয়েছিল তার সাথে মিলতে হবে।
আপনি যখন সাইন-ইন ইমেল পাঠান তখন স্থানীয়ভাবে তাদের ইমেল ঠিকানা সংরক্ষণ করে - উদাহরণস্বরূপ SharedPreferences ব্যবহার করে - লিঙ্কটি অনুরোধ করার সময় একই ডিভাইসে সাইন-ইন লিঙ্কটি খোলেন এমন ব্যবহারকারীদের জন্য এই প্রবাহটি স্ট্রিমলাইন করতে পারেন। তারপর, প্রবাহটি সম্পূর্ণ করতে এই ঠিকানাটি ব্যবহার করুন। ব্যবহারকারীর ইমেলটি পুনঃনির্দেশ URL প্যারামিটারে প্রেরণ করবেন না এবং এটি পুনরায় ব্যবহার করুন কারণ এটি সেশন ইনজেকশন সক্ষম করতে পারে।
সাইন-ইন সম্পন্ন হওয়ার পর, ব্যবহারকারীর কাছ থেকে পূর্ববর্তী যাচাই না করা সাইন-ইন প্রক্রিয়াটি সরিয়ে ফেলা হবে এবং বিদ্যমান যেকোনো সেশন বাতিল করা হবে। উদাহরণস্বরূপ, যদি কেউ পূর্বে একই ইমেল এবং পাসওয়ার্ড দিয়ে একটি যাচাই না করা অ্যাকাউন্ট তৈরি করে থাকে, তাহলে ব্যবহারকারীর পাসওয়ার্ডটি সরিয়ে ফেলা হবে যাতে মালিকানা দাবি করে এবং যাচাই না করা অ্যাকাউন্ট তৈরিকারী ছদ্মবেশী ব্যক্তি যাচাই না করা ইমেল এবং পাসওয়ার্ড দিয়ে আবার সাইন ইন করতে না পারে।
এছাড়াও, আপনার লিঙ্কটি যাতে মধ্যস্থতাকারী সার্ভার দ্বারা আটকে না যায়, সেজন্য প্রোডাকশনে একটি HTTPS URL ব্যবহার করুন।
একটি অ্যান্ড্রয়েড অ্যাপে সাইন-ইন সম্পূর্ণ করা হচ্ছে
Firebase Authentication মোবাইল ডিভাইসে ইমেল লিঙ্ক পাঠানোর জন্য Firebase Hosting ব্যবহার করে। মোবাইল অ্যাপ্লিকেশনের মাধ্যমে সাইন-ইন সম্পূর্ণ করার জন্য, অ্যাপ্লিকেশনটিকে এমনভাবে কনফিগার করতে হবে যাতে ইনকামিং অ্যাপ্লিকেশন লিঙ্কটি সনাক্ত করা যায়, অন্তর্নিহিত ডিপ লিঙ্কটি পার্স করা যায় এবং তারপর সাইন-ইন সম্পূর্ণ করা যায়। আরও জানতে, Android App Links ডকুমেন্টেশন দেখুন।
Firebase Hosting কনফিগার করুন
মোবাইল অ্যাপ্লিকেশনে খোলার জন্য তৈরি করা লিঙ্কটি পাঠানোর সময় Firebase Authentication Firebase Hosting ডোমেন ব্যবহার করে। আপনার জন্য একটি ডিফল্ট Firebase Hosting ডোমেন ইতিমধ্যেই কনফিগার করা হয়েছে।
Firebase Hosting ডোমেন কনফিগার করুন:
Firebase কনসোলে, হোস্টিং বিভাগটি খুলুন।
মোবাইল অ্যাপ্লিকেশনগুলিতে খোলা ইমেল লিঙ্কের জন্য যদি আপনি ডিফল্ট ডোমেন ব্যবহার করতে চান, তাহলে আপনার ডিফল্ট সাইটে যান এবং আপনার ডিফল্ট Hosting ডোমেনটি নোট করুন। একটি ডিফল্ট Hosting ডোমেন সাধারণত এইরকম দেখায়:
PROJECT_ID .firebaseapp.com.ইনকামিং লিঙ্কটি আটকানোর জন্য আপনার অ্যাপটি কনফিগার করার সময় আপনার এই মানটির প্রয়োজন হবে।
আপনি যদি ইমেল লিঙ্কের জন্য একটি কাস্টম ডোমেইন ব্যবহার করতে চান, তাহলে আপনি Firebase Hosting সাথে একটি নিবন্ধন করতে পারেন এবং লিঙ্কের ডোমেইনটির জন্য সেটি ব্যবহার করতে পারেন।
অ্যান্ড্রয়েড অ্যাপ্লিকেশন কনফিগার করা:
আপনার অ্যান্ড্রয়েড অ্যাপ্লিকেশন থেকে এই লিঙ্কগুলি পরিচালনা করার জন্য, আপনার অ্যাপের প্যাকেজের নাম Firebase কনসোল প্রকল্প সেটিংসে নির্দিষ্ট করতে হবে। এছাড়াও, অ্যাপ্লিকেশন সার্টিফিকেটের SHA-1 এবং SHA-256 প্রদান করতে হবে।
যদি আপনি চান যে এই লিঙ্কগুলি কোনও নির্দিষ্ট কার্যকলাপে পুনঃনির্দেশিত হোক, তাহলে আপনার
AndroidManifest.xmlফাইলে একটি ইন্টেন্ট ফিল্টার কনফিগার করতে হবে। ইন্টেন্ট ফিল্টারটি আপনার ডোমেনের ইমেল লিঙ্কগুলি ধরবে।AndroidManifest.xmlএ:<intent-filter android:autoVerify="true"> <action android:name="android.intent.action.VIEW" /> <category android:name="android.intent.category.BROWSABLE" /> <category android:name="android.intent.category.DEFAULT" /> <data android:scheme="https" android:host="<PROJECT_ID>.firebaseapp.com or your custom domain" android:pathPrefix="/__/auth/links" /> </intent-filter>যখন ব্যবহারকারীরা
/__/auth/linksপাথ এবং আপনার নির্দিষ্ট স্কিম এবং হোস্ট ব্যবহার করে একটি হোস্টিং লিঙ্ক খোলেন, তখন আপনার অ্যাপটি লিঙ্কটি পরিচালনা করার জন্য এই ইন্টেন্ট ফিল্টার ব্যবহার করে কার্যকলাপ শুরু করবে।
লিঙ্ক যাচাই করুন এবং সাইন ইন করুন
উপরে বর্ণিত লিঙ্কটি পাওয়ার পর, যাচাই করুন যে এটি ইমেল লিঙ্ক প্রমাণীকরণের জন্য তৈরি এবং সাইন ইন সম্পূর্ণ করুন।
Kotlin
val auth = Firebase.auth val intent = intent val emailLink = intent.data.toString() // Confirm the link is a sign-in with email link. if (auth.isSignInWithEmailLink(emailLink)) { // Retrieve this from wherever you stored it val email = "someemail@domain.com" // The client SDK will parse the code from the link for you. auth.signInWithEmailLink(email, emailLink) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Successfully signed in with email link!") val result = task.result // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error signing in with email link", task.exception) } } }
Java
FirebaseAuth auth = FirebaseAuth.getInstance(); Intent intent = getIntent(); String emailLink = intent.getData().toString(); // Confirm the link is a sign-in with email link. if (auth.isSignInWithEmailLink(emailLink)) { // Retrieve this from wherever you stored it String email = "someemail@domain.com"; // The client SDK will parse the code from the link for you. auth.signInWithEmailLink(email, emailLink) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "Successfully signed in with email link!"); AuthResult result = task.getResult(); // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error signing in with email link", task.getException()); } } }); }
অ্যাপল অ্যাপ্লিকেশনে ইমেল লিঙ্কের মাধ্যমে সাইন-ইন কীভাবে পরিচালনা করবেন সে সম্পর্কে আরও জানতে, অ্যাপল প্ল্যাটফর্ম নির্দেশিকাটি দেখুন।
ওয়েব অ্যাপ্লিকেশনে ইমেল লিঙ্কের মাধ্যমে সাইন-ইন কীভাবে পরিচালনা করবেন তা জানতে, ওয়েব নির্দেশিকাটি দেখুন।
ইমেল লিঙ্কের সাথে লিঙ্কিং/পুনরায় প্রমাণীকরণ
আপনি এই প্রমাণীকরণ পদ্ধতিটি একজন বিদ্যমান ব্যবহারকারীর সাথেও লিঙ্ক করতে পারেন। উদাহরণস্বরূপ, একজন ব্যবহারকারী যিনি পূর্বে অন্য কোনও প্রদানকারীর সাথে প্রমাণীকরণ করেছেন, যেমন একটি ফোন নম্বর, তিনি তাদের বিদ্যমান অ্যাকাউন্টে সাইন-ইন করার এই পদ্ধতিটি যোগ করতে পারেন।
অপারেশনের দ্বিতীয়ার্ধে পার্থক্যটি হবে:
Kotlin
// Construct the email link credential from the current URL. val credential = EmailAuthProvider.getCredentialWithLink(email, emailLink) // Link the credential to the current user. Firebase.auth.currentUser!!.linkWithCredential(credential) .addOnCompleteListener { task -> if (task.isSuccessful) { Log.d(TAG, "Successfully linked emailLink credential!") val result = task.result // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error linking emailLink credential", task.exception) } }
Java
// Construct the email link credential from the current URL. AuthCredential credential = EmailAuthProvider.getCredentialWithLink(email, emailLink); // Link the credential to the current user. auth.getCurrentUser().linkWithCredential(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { Log.d(TAG, "Successfully linked emailLink credential!"); AuthResult result = task.getResult(); // You can access the new user via result.getUser() // Additional user info profile *not* available via: // result.getAdditionalUserInfo().getProfile() == null // You can check if the user is new or existing: // result.getAdditionalUserInfo().isNewUser() } else { Log.e(TAG, "Error linking emailLink credential", task.getException()); } } });
এটি কোনও সংবেদনশীল অপারেশন চালানোর আগে কোনও ইমেল লিঙ্ক ব্যবহারকারীকে পুনরায় প্রমাণীকরণ করতেও ব্যবহার করা যেতে পারে।
Kotlin
// Construct the email link credential from the current URL. val credential = EmailAuthProvider.getCredentialWithLink(email, emailLink) // Re-authenticate the user with this credential. Firebase.auth.currentUser!!.reauthenticateAndRetrieveData(credential) .addOnCompleteListener { task -> if (task.isSuccessful) { // User is now successfully reauthenticated } else { Log.e(TAG, "Error reauthenticating", task.exception) } }
Java
// Construct the email link credential from the current URL. AuthCredential credential = EmailAuthProvider.getCredentialWithLink(email, emailLink); // Re-authenticate the user with this credential. auth.getCurrentUser().reauthenticateAndRetrieveData(credential) .addOnCompleteListener(new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { if (task.isSuccessful()) { // User is now successfully reauthenticated } else { Log.e(TAG, "Error reauthenticating", task.getException()); } } });
তবে, যেহেতু ফ্লোটি অন্য কোনও ডিভাইসে শেষ হতে পারে যেখানে মূল ব্যবহারকারী লগ ইন করেননি, তাই এই ফ্লোটি সম্পূর্ণ নাও হতে পারে। সেক্ষেত্রে, ব্যবহারকারীকে একটি ত্রুটি দেখানো হতে পারে যা তাদের একই ডিভাইসে লিঙ্কটি খুলতে বাধ্য করতে পারে। অপারেশনের ধরণ এবং ব্যবহারকারীর ইউআইডি সম্পর্কে তথ্য প্রদানের জন্য লিঙ্কটিতে কিছু অবস্থা পাস করা যেতে পারে।
বন্ধ করা হয়েছে: Firebase Dynamic Links ভিত্তিক যাচাইকরণ
ইমেল লিঙ্ক প্রমাণীকরণ পূর্বে Firebase Dynamic Links উপর নির্ভর করত, যা ২৫শে আগস্ট, ২০২৫ তারিখে বন্ধ হয়ে যাবে।
আমরা Firebase Authentication Android SDK v23.2.0+ এবং Firebase BoM v33.9.0+-এ একটি বিকল্প সমাধান প্রকাশ করেছি।
যদি আপনার অ্যাপটি পুরানো স্টাইলের লিঙ্ক ব্যবহার করে, তাহলে আপনার অ্যাপটি নতুন Firebase Hosting ভিত্তিক সিস্টেমে স্থানান্তর করা উচিত।
বন্ধ করা হয়েছে: ইমেল লিঙ্ক থেকে ইমেল-পাসওয়ার্ডকে আলাদা করা
যদি আপনি ১৫ সেপ্টেম্বর, ২০২৩ তারিখে বা তার পরে আপনার প্রকল্প তৈরি করে থাকেন, তাহলে ইমেল গণনা সুরক্ষা ডিফল্টরূপে সক্রিয় থাকে। এই বৈশিষ্ট্যটি আপনার প্রকল্পের ব্যবহারকারী অ্যাকাউন্টগুলির নিরাপত্তা উন্নত করে, কিন্তু এটি fetchSignInMethodsForEmail() পদ্ধতিটি অক্ষম করে, যা আমরা পূর্বে identifier-first flows বাস্তবায়নের জন্য সুপারিশ করেছিলাম।
যদিও আপনি আপনার প্রকল্পের জন্য ইমেল গণনা সুরক্ষা অক্ষম করতে পারেন, আমরা তা না করার পরামর্শ দিচ্ছি।
আরও বিস্তারিত জানার জন্য ইমেল গণনা সুরক্ষা সম্পর্কিত ডকুমেন্টেশন দেখুন।
পরবর্তী পদক্ষেপ
একজন ব্যবহারকারী প্রথমবার সাইন ইন করার পর, একটি নতুন ব্যবহারকারী অ্যাকাউন্ট তৈরি করা হয় এবং শংসাপত্রের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর, অথবা প্রমাণীকরণ প্রদানকারীর তথ্য—যার মাধ্যমে ব্যবহারকারী সাইন ইন করেছেন। এই নতুন অ্যাকাউন্টটি আপনার Firebase প্রকল্পের অংশ হিসাবে সংরক্ষণ করা হয় এবং ব্যবহারকারী যেভাবেই সাইন ইন করুক না কেন, আপনার প্রকল্পের প্রতিটি অ্যাপে একজন ব্যবহারকারীকে সনাক্ত করতে ব্যবহার করা যেতে পারে।
আপনার অ্যাপগুলিতে, আপনি
FirebaseUserঅবজেক্ট থেকে ব্যবহারকারীর মৌলিক প্রোফাইল তথ্য পেতে পারেন। ব্যবহারকারীদের পরিচালনা করুন দেখুন।আপনার Firebase Realtime Database এবং Cloud Storage সিকিউরিটি রুলস -এ, আপনি
authভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে পারেন এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবেন তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারেন।
আপনি ব্যবহারকারীদের একাধিক প্রমাণীকরণ প্রদানকারী ব্যবহার করে আপনার অ্যাপে সাইন ইন করার অনুমতি দিতে পারেন , একটি বিদ্যমান ব্যবহারকারী অ্যাকাউন্টের সাথে প্রমাণীকরণ প্রদানকারীর শংসাপত্র লিঙ্ক করে।
কোনও ব্যবহারকারীকে সাইন আউট করতে, signOut এ কল করুন:
Kotlin
Firebase.auth.signOut()
Java
FirebaseAuth.getInstance().signOut();