আপনার অ্যাপের মাধ্যমে Authentication এমুলেটর ব্যবহার করার আগে, নিশ্চিত করুন যে আপনি সামগ্রিক Firebase Local Emulator Suite ওয়ার্কফ্লো বুঝতে পেরেছেন এবং আপনি Local Emulator Suite ইনস্টল এবং কনফিগার করেছেন এবং এর CLI কমান্ডগুলি পর্যালোচনা করেছেন।
এই বিষয়টি ধরে নেওয়া হচ্ছে যে আপনি উৎপাদনের জন্য Firebase Authentication সমাধান তৈরির সাথে ইতিমধ্যেই পরিচিত। প্রয়োজনে, প্ল্যাটফর্ম এবং Authentication কৌশলের সমন্বয়ের জন্য ডকুমেন্টেশন পর্যালোচনা করুন।
Authentication এমুলেটর দিয়ে আমি কী করতে পারি?
Authentication এমুলেটরটি Firebase Authentication পরিষেবাগুলির উচ্চ-বিশ্বস্ত স্থানীয় অনুকরণ প্রদান করে, যা Firebase Authentication উৎপাদনে পাওয়া বেশিরভাগ কার্যকারিতা প্রদান করে। অ্যাপল প্ল্যাটফর্ম, অ্যান্ড্রয়েড এবং ওয়েব ফায়ারবেস SDK এর সাথে যুক্ত, এমুলেটরটি আপনাকে এগুলি করতে দেয়:
- ইমেল/পাসওয়ার্ড, ফোন নম্বর/এসএমএস, এসএমএস মাল্টি-ফ্যাক্টর এবং তৃতীয় পক্ষের (যেমন গুগল) পরিচয় প্রদানকারী প্রমাণীকরণ পরীক্ষার জন্য অনুকরণ করা ব্যবহারকারী অ্যাকাউন্ট তৈরি, আপডেট এবং পরিচালনা করুন।
- অনুকরণ করা ব্যবহারকারীদের দেখুন এবং সম্পাদনা করুন
- প্রোটোটাইপ কাস্টম টোকেন প্রমাণীকরণ সিস্টেম
- এমুলেটর UI লগ ট্যাবে প্রমাণীকরণ-সম্পর্কিত বার্তাগুলি পরীক্ষা করুন।
একটি Firebase প্রকল্প বেছে নিন
Firebase Local Emulator Suite একটি একক ফায়ারবেস প্রকল্পের জন্য পণ্য অনুকরণ করে।
ব্যবহারের জন্য প্রজেক্ট নির্বাচন করতে, এমুলেটর শুরু করার আগে, CLI রানে আপনার ওয়ার্কিং ডিরেক্টরিতে firebase use । অথবা, আপনি প্রতিটি এমুলেটর কমান্ডে --project ফ্ল্যাগটি পাস করতে পারেন।
Local Emulator Suite বাস্তব ফায়ারবেস প্রকল্প এবং ডেমো প্রকল্পের অনুকরণ সমর্থন করে।
| প্রকল্পের ধরণ | ফিচার | এমুলেটরের সাথে ব্যবহার করুন |
|---|---|---|
| বাস্তব | একটি আসল ফায়ারবেস প্রকল্প হল আপনার তৈরি এবং কনফিগার করা প্রকল্প (সম্ভবত Firebase কনসোলের মাধ্যমে)। বাস্তব প্রকল্পগুলিতে লাইভ রিসোর্স থাকে, যেমন ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন, অথবা ফায়ারবেস প্রকল্পের জন্য আপনার সেট আপ করা অন্য কোনও রিসোর্স। | আসল ফায়ারবেস প্রকল্পগুলির সাথে কাজ করার সময়, আপনি যেকোনো বা সমস্ত সমর্থিত পণ্যের জন্য এমুলেটর চালাতে পারেন। আপনি যে পণ্যগুলি অনুকরণ করছেন না, তার জন্য আপনার অ্যাপস এবং কোড লাইভ রিসোর্সের সাথে ইন্টারঅ্যাক্ট করবে (ডাটাবেস ইনস্ট্যান্স, স্টোরেজ বাকেট, ফাংশন ইত্যাদি)। |
| ডেমো | একটি ডেমো ফায়ারবেস প্রকল্পের কোনও বাস্তব ফায়ারবেস কনফিগারেশন এবং কোনও লাইভ রিসোর্স নেই। এই প্রকল্পগুলি সাধারণত কোডল্যাব বা অন্যান্য টিউটোরিয়ালের মাধ্যমে অ্যাক্সেস করা হয়। ডেমো প্রকল্পের জন্য প্রকল্প আইডিগুলিতে | ডেমো ফায়ারবেস প্রজেক্টের সাথে কাজ করার সময়, আপনার অ্যাপ এবং কোড শুধুমাত্র এমুলেটরের সাথে ইন্টারঅ্যাক্ট করে। যদি আপনার অ্যাপ এমন কোনও রিসোর্সের সাথে ইন্টারঅ্যাক্ট করার চেষ্টা করে যার জন্য একটি এমুলেটর চলছে না, তাহলে সেই কোডটি ব্যর্থ হবে। |
আমরা আপনাকে যেখানেই সম্ভব ডেমো প্রকল্প ব্যবহার করার পরামর্শ দিচ্ছি। সুবিধার মধ্যে রয়েছে:
- সহজ সেটআপ, যেহেতু আপনি ফায়ারবেস প্রকল্প তৈরি না করেই এমুলেটরগুলি চালাতে পারবেন
- শক্তিশালী নিরাপত্তা, যেহেতু আপনার কোড যদি ভুলবশত অ-অনুকরণীয় (উৎপাদন) সংস্থানগুলিকে ব্যবহার করে, তাহলে ডেটা পরিবর্তন, ব্যবহার এবং বিলিং এর কোনও সম্ভাবনা নেই।
- আরও ভালো অফলাইন সাপোর্ট, যেহেতু আপনার SDK কনফিগারেশন ডাউনলোড করার জন্য ইন্টারনেট অ্যাক্সেস করার প্রয়োজন নেই।
এমুলেটরের সাথে কথা বলার জন্য আপনার অ্যাপটি ব্যবহার করুন
অ্যান্ড্রয়েড, আইওএস এবং ওয়েব এসডিকে
Authentication এমুলেটরের সাথে ইন্টারঅ্যাক্ট করার জন্য আপনার ইন-অ্যাপ কনফিগারেশন বা টেস্ট ক্লাস সেট আপ করুন নিম্নরূপ।
Kotlin
Firebase.auth.useEmulator("10.0.2.2", 9099)
Java
FirebaseAuth.getInstance().useEmulator("10.0.2.2", 9099);
সুইফট
Auth.auth().useEmulator(withHost:"127.0.0.1", port:9099)
Web
import { getAuth, connectAuthEmulator } from "firebase/auth"; const auth = getAuth(); connectAuthEmulator(auth, "http://127.0.0.1:9099");
Web
const auth = firebase.auth(); auth.useEmulator("http://127.0.0.1:9099");
Cloud Firestore বা Realtime Database জন্য Authentication এবং Cloud Functions বা Firebase Security Rules মধ্যে মিথস্ক্রিয়া প্রোটোটাইপ এবং পরীক্ষা করার জন্য কোনও অতিরিক্ত সেটআপের প্রয়োজন নেই। যখন Authentication এমুলেটর কনফিগার করা হয় এবং অন্যান্য এমুলেটরগুলি চলমান থাকে, তখন তারা স্বয়ংক্রিয়ভাবে একসাথে কাজ করে।
Admin SDK গুলি
FIREBASE_AUTH_EMULATOR_HOST এনভায়রনমেন্ট ভেরিয়েবল সেট করা হলে Firebase Admin SDK স্বয়ংক্রিয়ভাবে Authentication এমুলেটরের সাথে সংযুক্ত হয়।
export FIREBASE_AUTH_EMULATOR_HOST="127.0.0.1:9099"
মনে রাখবেন যে Cloud Functions এমুলেটরটি স্বয়ংক্রিয়ভাবে Authentication এমুলেটর সম্পর্কে সচেতন, তাই Cloud Functions এবং Authentication এমুলেটরগুলির মধ্যে ইন্টিগ্রেশন পরীক্ষা করার সময় আপনি এই ধাপটি এড়িয়ে যেতে পারেন। পরিবেশ পরিবর্তনশীলটি স্বয়ংক্রিয়ভাবে Cloud Functions Admin SDK এর জন্য সেট করা হবে।
পরিবেশ পরিবর্তনশীল সেটের মাধ্যমে, Firebase Admin SDK গুলি স্থানীয় উন্নয়ন এবং পরীক্ষার সুবিধার্থে Authentication এমুলেটর দ্বারা জারি করা স্বাক্ষরবিহীন ID টোকেন এবং সেশন কুকিজ (যথাক্রমে verifyIdToken এবং createSessionCookie পদ্ধতির মাধ্যমে) গ্রহণ করবে। অনুগ্রহ করে নিশ্চিত করুন যে উৎপাদনে পরিবেশ পরিবর্তনশীল সেট করা হয়নি ।
যদি আপনি চান যে আপনার Admin SDK কোডটি অন্য পরিবেশে চলমান একটি শেয়ার্ড এমুলেটরের সাথে সংযুক্ত হোক, তাহলে আপনাকে Firebase CLI ব্যবহার করে সেট করা একই প্রজেক্ট আইডি নির্দিষ্ট করতে হবে। আপনি সরাসরি initializeApp এর জন্য একটি প্রজেক্ট আইডি পাস করতে পারেন অথবা GCLOUD_PROJECT এনভায়রনমেন্ট ভেরিয়েবল সেট করতে পারেন।
Node.js অ্যাডমিন SDK
admin.initializeApp({ projectId: "your-project-id" });
পরিবেশ পরিবর্তনশীল
export GCLOUD_PROJECT="your-project-id"
আইডি টোকেন
নিরাপত্তার কারণে, Authentication এমুলেটর স্বাক্ষরবিহীন আইডি টোকেন ইস্যু করে, যা শুধুমাত্র অন্যান্য ফায়ারবেস এমুলেটর দ্বারা গৃহীত হয়, অথবা কনফিগার করা হলে ফায়ারবেস অ্যাডমিন SDK। এই টোকেনগুলি প্রোডাকশন ফায়ারবেস পরিষেবা বা প্রোডাকশন মোডে চলমান ফায়ারবেস অ্যাডমিন SDK দ্বারা প্রত্যাখ্যান করা হবে (যেমন উপরে বর্ণিত সেটআপ পদক্ষেপগুলি ছাড়া ডিফল্ট আচরণ)।
এমুলেটরটি শুরু করুন
আপনি Emulator Suite UI মাধ্যমে Authentication এমুলেটরটি ইন্টারেক্টিভভাবে এবং এর স্থানীয় REST ইন্টারফেসের মাধ্যমে অ-ইন্টারেক্টিভভাবে ব্যবহার করতে পারেন। নিম্নলিখিত বিভাগগুলিতে ইন্টারেক্টিভ এবং অ-ইন্টারেক্টিভ ব্যবহারের ক্ষেত্রে আলোচনা করা হয়েছে।
Authentication এমুলেটর, এর REST ইন্টারফেস এবং Emulator Suite UI শুরু করতে, নিম্নলিখিতটি সম্পাদন করুন:
firebase emulators:start
অনুকরণ করা ইমেল, ইমেল লিঙ্ক এবং বেনামী প্রমাণীকরণ
বেনামী প্রমাণীকরণের জন্য, আপনার অ্যাপ আপনার প্ল্যাটফর্মের ( iOS , Android , web ) জন্য সাইন-ইন লজিক ব্যবহার করতে পারে।
ইমেল/পাসওয়ার্ড প্রমাণীকরণের জন্য, আপনি Authentication SDK পদ্ধতি ব্যবহার করে আপনার অ্যাপ থেকে Authentication এমুলেটরে ব্যবহারকারী অ্যাকাউন্ট যুক্ত করে অথবা Emulator Suite UI ব্যবহার করে প্রোটোটাইপিং শুরু করতে পারেন।
- Emulator Suite UI তে, প্রমাণীকরণ ট্যাবে ক্লিক করুন।
- ব্যবহারকারী যোগ করুন বোতামে ক্লিক করুন।
- ইমেল প্রমাণীকরণ ক্ষেত্রগুলি পূরণ করে ব্যবহারকারী অ্যাকাউন্ট তৈরির উইজার্ডটি অনুসরণ করুন।
একটি পরীক্ষামূলক ব্যবহারকারী তৈরি করে, আপনার অ্যাপটি আপনার প্ল্যাটফর্মের ( iOS , Android , web ) জন্য SDK লজিক ব্যবহার করে ব্যবহারকারীকে সাইন ইন এবং আউট করতে পারে।
ইমেল লিঙ্ক ফ্লো দিয়ে ইমেল যাচাইকরণ/সাইন-ইন পরীক্ষা করার জন্য, এমুলেটরটি টার্মিনালে একটি URL প্রিন্ট করে যেখানে firebase emulators:start কার্যকর করা হয়েছিল।
i To verify the email address customer@ex.com, follow this link:
http://127.0.0.1:9099/emulator/action?mode=verifyEmail&lang=en&oobCode=XYZ123&apiKey=fake-api-keyযাচাইকরণ ইভেন্টটি অনুকরণ করতে আপনার ব্রাউজারে লিঙ্কটি পেস্ট করুন এবং যাচাইকরণ সফল হয়েছে কিনা তা পরীক্ষা করুন।
{
"authEmulator": {
"success": "The email has been successfully verified.",
"email": "customer@example.com"
}
}
পাসওয়ার্ড রিসেট পরীক্ষা করার জন্য, এমুলেটরটি টার্মিনালে একটি অনুরূপ URL প্রিন্ট করে, যার মধ্যে একটি newPassword প্যারামিটার (যা আপনি প্রয়োজন অনুসারে পরিবর্তন করতে পারেন) অন্তর্ভুক্ত থাকে।
http://127.0.0.1:9099/emulator/action?mode=resetPassword&oobCode=XYZ!23&apiKey=fake-api-key&newPassword=YOUR_NEW_PASSWORDনন-ইন্টারেক্টিভ টেস্টিং
ইমেল/পাসওয়ার্ড ব্যবহারকারী অ্যাকাউন্ট পরিচালনা করার জন্য Emulator Suite UI বা ক্লায়েন্ট কোড ব্যবহার করার পরিবর্তে, আপনি পরীক্ষামূলক সেটআপ স্ক্রিপ্ট লিখতে পারেন যা REST API গুলিকে কল করে ব্যবহারকারী অ্যাকাউন্ট তৈরি এবং মুছে ফেলতে এবং এমুলেটর ইমেল যাচাইকরণ URL পূরণ করার জন্য আউট-অফ-ব্যান্ড ইমেল যাচাইকরণ কোডগুলি আনতে পারে। এটি প্ল্যাটফর্ম এবং পরীক্ষার কোডকে আলাদা রাখে এবং আপনাকে অ-ইন্টারেক্টিভভাবে পরীক্ষা করতে দেয়।
নন-ইন্টারেক্টিভ ইমেল এবং পাসওয়ার্ড পরীক্ষার প্রবাহের জন্য, সাধারণ ক্রমটি নিম্নরূপ।
- Authentication সাইনআপ REST এন্ডপয়েন্ট ব্যবহার করে ব্যবহারকারী তৈরি করুন।
- পরীক্ষা করার জন্য ইমেল এবং পাসওয়ার্ড ব্যবহার করে ব্যবহারকারীদের সাইন ইন করুন।
- যদি আপনার পরীক্ষাগুলির ক্ষেত্রে প্রযোজ্য হয়, তাহলে এমুলেটর-নির্দিষ্ট REST এন্ডপয়েন্ট থেকে উপলব্ধ আউট-অফ-ব্যান্ড ইমেল যাচাইকরণ কোডগুলি আনুন।
- ডেটা সাফ করার জন্য এমুলেটর-নির্দিষ্ট REST এন্ডপয়েন্ট দিয়ে ব্যবহারকারীর রেকর্ড ফ্লাশ করুন।
অনুকরণ করা ফোন/এসএমএস প্রমাণীকরণ
ফোন প্রমাণীকরণের জন্য, Auth এমুলেটর নিম্নলিখিতগুলি সমর্থন করে না:
- reCAPTCHA এবং APN প্রবাহ। এমুলেটরের সাথে ইন্টারঅ্যাক্ট করার জন্য একবার কনফিগার করা হলে, ক্লায়েন্ট SDK গুলি ইন্টিগ্রেশন টেস্টিং ( iOS , Android , web ) এর জন্য বর্ণিত পদ্ধতির অনুরূপভাবে এই যাচাইকরণ পদ্ধতিগুলিকে অক্ষম করে।
- Firebase কনসোলে আগে থেকে কনফিগার করা কোড ব্যবহার করে ফোন নম্বর পরীক্ষা করুন।
অন্যথায়, ক্লায়েন্ট কোডের ক্ষেত্রে, ফোন/এসএমএস প্রমাণীকরণ প্রবাহ উৎপাদনের জন্য বর্ণিত প্রবাহের অনুরূপ ( iOS , Android , web )।
Emulator Suite UI ব্যবহার করে:
- Emulator Suite UI তে, প্রমাণীকরণ ট্যাবে ক্লিক করুন।
- ব্যবহারকারী যোগ করুন বোতামে ক্লিক করুন।
- ফোন প্রমাণীকরণ ক্ষেত্রগুলি পূরণ করে ব্যবহারকারী অ্যাকাউন্ট তৈরির উইজার্ডটি অনুসরণ করুন।
তবে, ফোন প্রমাণীকরণ প্রবাহের জন্য, এমুলেটর কোনও টেক্সট বার্তার ডেলিভারি ট্রিগার করবে না, কারণ কোনও ক্যারিয়ারের সাথে যোগাযোগ করা সুযোগের বাইরে এবং স্থানীয় পরীক্ষার জন্য উপযুক্ত নয়! পরিবর্তে, এমুলেটরটি সেই কোডটি প্রিন্ট করে যা SMS এর মাধ্যমে একই টার্মিনালে পাঠানো হত যেখানে আপনি firebase emulators:start ; চালাতেন; ব্যবহারকারীদের তাদের টেক্সট বার্তা পরীক্ষা করার অনুকরণ করার জন্য এই কোডটি অ্যাপে ইনপুট করুন।
নন-ইন্টারেক্টিভ টেস্টিং
নন-ইন্টারেক্টিভ ফোন প্রমাণীকরণ পরীক্ষার জন্য, উপলব্ধ এসএমএস কোডগুলি পুনরুদ্ধার করতে Authentication এমুলেটর REST API ব্যবহার করুন। মনে রাখবেন যে প্রতিবার ফ্লো শুরু করার সময় কোডটি আলাদা হয়।
সাধারণ ক্রমটি নিম্নরূপ।
- যাচাইকরণ প্রক্রিয়া শুরু করতে প্ল্যাটফর্ম
signInWithPhoneNumberকল করুন। - এমুলেটর-নির্দিষ্ট REST এন্ডপয়েন্ট ব্যবহার করে যাচাইকরণ কোডটি পুনরুদ্ধার করুন।
- যথারীতি যাচাইকরণ কোড দিয়ে
confirmationResult.confirm(code)এ কল করুন।
মাল্টি-ফ্যাক্টর এসএমএস
Authentication এমুলেটরটি iOS , Android এবং ওয়েবের জন্য প্রোডাকশনে উপলব্ধ SMS মাল্টি-ফ্যাক্টর অথেনটিকেশন (MFA) প্রবাহের প্রোটোটাইপিং এবং পরীক্ষা সমর্থন করে।
যখন আপনি এমুলেটরে একটি মক ব্যবহারকারী যোগ করেন, তখন আপনি MFA সক্ষম করতে পারেন এবং এক বা একাধিক ফোন নম্বর কনফিগার করতে পারেন যেখানে দ্বিতীয় ফ্যাক্টর SMS বার্তা পাঠানো হবে। বার্তাগুলি একই টার্মিনালে আউটপুট হয় যেখানে আপনি firebase emulators:start চালান, এবং REST ইন্টারফেস থেকে উপলব্ধ।
ইমুলেটেড থার্ড-পার্টি আইডেন্টিটি প্রোভাইডার (IDP) প্রমাণীকরণ
Authentication এমুলেটর আপনাকে আপনার iOS, Android বা ওয়েব অ্যাপে প্রোডাকশন কোড থেকে কোনও পরিবর্তন ছাড়াই অনেক তৃতীয়-পক্ষের প্রমাণীকরণ প্রবাহ পরীক্ষা করতে দেয়। প্রমাণীকরণ প্রবাহের উদাহরণের জন্য, আপনার অ্যাপে ব্যবহার করা যেতে পারে এমন বিভিন্ন সরবরাহকারী এবং প্ল্যাটফর্মের সমন্বয়ের ডকুমেন্টেশন দেখুন।
সাধারণভাবে বলতে গেলে, আপনি দুটি উপায়ের একটিতে প্রমাণীকরণের জন্য Firebase SDK ব্যবহার করতে পারেন:
- আপনার অ্যাপটি SDK-কে সম্পূর্ণ প্রক্রিয়াটি এন্ড-টু-এন্ড পরিচালনা করতে দেয়, যার মধ্যে তৃতীয়-পক্ষের IDP প্রদানকারীদের সাথে শংসাপত্র পুনরুদ্ধারের জন্য সমস্ত মিথস্ক্রিয়া অন্তর্ভুক্ত।
- আপনার অ্যাপটি ম্যানুয়ালি তৃতীয় পক্ষের SDK ব্যবহার করে তৃতীয় পক্ষের সরবরাহকারীর কাছ থেকে শংসাপত্রগুলি পুনরুদ্ধার করে এবং সেই শংসাপত্রগুলি Authentication SDK-তে প্রেরণ করে।
আবার, উপরের ডকুমেন্টেশন লিঙ্কটি পরীক্ষা করে দেখুন এবং নিশ্চিত করুন যে আপনি যে কোনও ফ্লো - ফায়ারবেস SDK-পরিচালিত বনাম ম্যানুয়াল শংসাপত্র পুনরুদ্ধার - ব্যবহার করতে চান তার সাথে পরিচিত। Authentication এমুলেটর উভয় পদ্ধতির পরীক্ষা সমর্থন করে।
ফায়ারবেস SDK-চালিত IDP প্রবাহ পরীক্ষা করা হচ্ছে
যদি আপনার অ্যাপ ইন্টারেক্টিভ পরীক্ষার জন্য কোনও Firebase SDK এন্ড-টু-এন্ড ফ্লো ব্যবহার করে, যেমন OAuthProvider Microsoft, GitHub, অথবা Yahoo-এর সাথে সাইন-ইন করার জন্য, তাহলে Authentication এমুলেটরটি সংশ্লিষ্ট সাইন-ইন পৃষ্ঠার একটি স্থানীয় সংস্করণ পরিবেশন করে যা আপনাকে signinWithPopup বা signInWithRedirect পদ্ধতি কলকারী ওয়েব অ্যাপ থেকে প্রমাণীকরণ পরীক্ষা করতে সাহায্য করে। স্থানীয়ভাবে পরিবেশিত এই সাইন-ইন পৃষ্ঠাটি মোবাইল অ্যাপেও প্রদর্শিত হয়, যা আপনার প্ল্যাটফর্মের ওয়েবভিউ লাইব্রেরি দ্বারা রেন্ডার করা হয়।
প্রবাহ এগিয়ে যাওয়ার সাথে সাথে এমুলেটরটি প্রয়োজন অনুসারে নকল তৃতীয় পক্ষের ব্যবহারকারী অ্যাকাউন্ট এবং শংসাপত্র তৈরি করে।
ম্যানুয়াল শংসাপত্র পুনরুদ্ধারের মাধ্যমে IDP পরীক্ষা করা হয়
যদি আপনি "ম্যানুয়াল" সাইন-ইন কৌশল ব্যবহার করেন এবং আপনার প্ল্যাটফর্মের signInWithCredentials পদ্ধতিতে কল করেন, তাহলে, যথারীতি, আপনার অ্যাপটি আসল তৃতীয় পক্ষের সাইন-ইনের অনুরোধ করবে এবং আসল তৃতীয় পক্ষের শংসাপত্রগুলি পুনরুদ্ধার করবে।
মনে রাখবেন যে এমুলেটরটি শুধুমাত্র Google সাইন-ইন, অ্যাপল এবং অন্যান্য প্রদানকারী যারা JSON ওয়েব টোকেন (JWT) হিসাবে বাস্তবায়িত ID টোকেন ব্যবহার করে তাদের কাছ থেকে প্রাপ্ত শংসাপত্রের জন্য signInWithCredential প্রমাণীকরণ সমর্থন করে। অ্যাক্সেস টোকেন (যেমন ফেসবুক বা টুইটার দ্বারা প্রদত্ত, যা JWT নয়) সমর্থিত নয়। পরবর্তী বিভাগে এই ক্ষেত্রে একটি বিকল্প নিয়ে আলোচনা করা হয়েছে।
নন-ইন্টারেক্টিভ টেস্টিং
নন-ইন্টারেক্টিভ টেস্টিংয়ের একটি পদ্ধতি হল এমুলেটর দ্বারা পরিবেশিত সাইন-ইন পৃষ্ঠায় ব্যবহারকারীর ক্লিকগুলি স্বয়ংক্রিয় করা। ওয়েব অ্যাপের জন্য, WebDriver এর মতো একটি নিয়ন্ত্রণ ইন্টারফেস ব্যবহার করুন। মোবাইলের জন্য, আপনার প্ল্যাটফর্ম থেকে UI পরীক্ষা সরঞ্জাম ব্যবহার করুন, যেমন Espresso বা Xcode।
বিকল্পভাবে, আপনি signInWithCredential ব্যবহার করার জন্য আপনার কোড আপডেট করতে পারেন (যেমন একটি কোড শাখায়) এবং আসল শংসাপত্রের পরিবর্তে অ্যাকাউন্টগুলির জন্য মক আইডি টোকেন সহ একটি টোকেন প্রমাণীকরণ প্রবাহ ব্যবহার করতে পারেন।
- আপনার কোডের সেই অংশটি রিওয়্যার করুন বা কমেন্ট করুন যা IDP থেকে idTokens পুনরুদ্ধার করে; এটি আপনার পরীক্ষার সময় আসল ব্যবহারকারীর নাম এবং পাসওয়ার্ড ইনপুট করার প্রয়োজনীয়তা দূর করে এবং IDP-তে API কোটা এবং হারের সীমা থেকে আপনার পরীক্ষাগুলিকে মুক্তি দেয়।
- দ্বিতীয়ত,
signInWithCredentialএর জন্য টোকেনের পরিবর্তে একটি আক্ষরিক JSON স্ট্রিং ব্যবহার করুন। উদাহরণ হিসেবে ওয়েব SDK ব্যবহার করে, আপনি কোডটি এতে পরিবর্তন করতে পারেন:
firebase.auth().signInWithCredential(firebase.auth.GoogleAuthProvider.credential(
'{"sub": "abc123", "email": "foo@example.com", "email_verified": true}'
));
এমুলেটরের সাথে ব্যবহার করা হলে, এই কোডটি গুগলে foo@example.com ইমেল সহ একজন ব্যবহারকারীকে সফলভাবে প্রমাণীকরণ করবে। সাবফিল্ডটিকে একটি প্রাথমিক কী হিসাবে ভাবুন, যা যেকোনো স্ট্রিংয়ে পরিবর্তন করা যেতে পারে, যা বিভিন্ন ব্যবহারকারীদের সাইন ইন করার জন্য উপহাস করে। আপনি firebase.auth.GoogleAuthProvider new firebase.auth.OAuthProvider('yahoo.com') অথবা অন্য যেকোনো প্রোভাইডার আইডি দিয়ে প্রতিস্থাপন করতে পারেন যা আপনি উপহাস করতে চান।
অনুকরণ করা কাস্টম টোকেন প্রমাণীকরণ
Authentication এমুলেটরটি সমর্থিত প্ল্যাটফর্মগুলিতে signInWithCustomToken পদ্ধতিতে কল ব্যবহার করে কাস্টম JSON ওয়েব টোকেনগুলির সাথে প্রমাণীকরণ পরিচালনা করে, যেমনটি Authentication ডকুমেন্টেশনে বর্ণিত হয়েছে।
Authentication এমুলেটর কীভাবে উৎপাদন থেকে আলাদা
ফায়ারবেস Authentication এমুলেটর প্রোডাকশন প্রোডাক্টের অনেক বৈশিষ্ট্য সিমুলেট করে। তবে, যেহেতু যেকোনো ধরণের অথেনটিকেশন সিস্টেম একাধিক স্তরে (ডিভাইস, তৃতীয় পক্ষের সরবরাহকারী, ফায়ারবেস, ইত্যাদি) নিরাপত্তার উপর ব্যাপকভাবে নির্ভর করে, তাই এমুলেটরের পক্ষে সমস্ত প্রবাহ সঠিকভাবে পুনরায় তৈরি করা কঠিন।
ক্লাউড আইএএম
ফায়ারবেস এমুলেটর স্যুট চালানোর জন্য IAM-সম্পর্কিত কোনও আচরণের প্রতিলিপি তৈরি বা সম্মান করার চেষ্টা করে না। এমুলেটরগুলি প্রদত্ত ফায়ারবেস সুরক্ষা নিয়ম মেনে চলে, তবে এমন পরিস্থিতিতে যেখানে IAM সাধারণত ব্যবহার করা হয়, উদাহরণস্বরূপ ক্লাউড ফাংশনগুলি পরিষেবা অ্যাকাউন্ট চালু করার জন্য এবং এইভাবে অনুমতি দেওয়ার জন্য, এমুলেটরটি কনফিগারযোগ্য নয় এবং আপনার ডেভেলপার মেশিনে বিশ্বব্যাপী উপলব্ধ অ্যাকাউন্টটি ব্যবহার করবে, যেমন সরাসরি স্থানীয় স্ক্রিপ্ট চালানো।
মোবাইলে ইমেল লিঙ্কের মাধ্যমে সাইন-ইন করুন
যেহেতু মোবাইল প্ল্যাটফর্মগুলিতে, ইমেল লিঙ্ক সাইন-ইন Firebase Dynamic Links-এর উপর নির্ভর করে, তাই এই ধরনের সমস্ত লিঙ্ক (মোবাইল) ওয়েব প্ল্যাটফর্মে খোলা হবে।
তৃতীয় পক্ষের সাইন-ইন
তৃতীয় পক্ষের সাইন-ইন প্রবাহের জন্য, Firebase Authentication টুইটার এবং Github-এর মতো তৃতীয় পক্ষের প্রদানকারীদের থেকে সুরক্ষিত শংসাপত্রের উপর নির্ভর করে।
OpenID Connect প্রদানকারী যেমন Google এবং Apple থেকে আসল শংসাপত্রগুলি Authentication এমুলেটর দ্বারা গৃহীত হয়। OpenID Connect-বহির্ভূত প্রদানকারীদের থেকে শংসাপত্রগুলি সমর্থিত নয়।
ইমেল / এসএমএস সাইন-ইন
প্রোডাকশন অ্যাপগুলিতে, ইমেল এবং এসএমএস সাইন-ইন প্রবাহে একটি অ্যাসিঙ্ক্রোনাস অপারেশন জড়িত থাকে যেখানে ব্যবহারকারী একটি প্রাপ্ত বার্তা পরীক্ষা করে এবং একটি সাইন-ইন ইন্টারফেসে একটি লগইন কোড প্রবেশ করায়। Authentication এমুলেটর কোনও ইমেল বা এসএমএস বার্তা পাঠায় না, তবে উপরে বর্ণিত হিসাবে, এটি লগইন কোড তৈরি করে এবং পরীক্ষায় ব্যবহারের জন্য টার্মিনালে আউটপুট করে।
এমুলেটরটি Firebase কনসোল ব্যবহার করে স্থির লগইন কোড ব্যবহার করে পরীক্ষামূলক ফোন নম্বর সংজ্ঞায়িত করার ক্ষমতা সমর্থন করে না।
কাস্টম টোকেন প্রমাণীকরণ
Authentication এমুলেটর কাস্টম টোকেনের স্বাক্ষর বা মেয়াদোত্তীর্ণতা যাচাই করে না। এটি আপনাকে হাতে তৈরি টোকেন ব্যবহার করতে এবং প্রোটোটাইপিং এবং পরীক্ষার পরিস্থিতিতে অনির্দিষ্টকালের জন্য টোকেন পুনরায় ব্যবহার করতে দেয়।
হার সীমাবদ্ধকরণ / নির্যাতন-বিরোধী
Authentication এমুলেটর উৎপাদন হার সীমাবদ্ধকরণ বা অপব্যবহার-বিরোধী বৈশিষ্ট্যগুলির প্রতিলিপি তৈরি করে না।
ব্লকিং ফাংশন
প্রোডাকশনে, beforeCreate এবং beforeSignIn ইভেন্টগুলি ট্রিগার করার পরে ব্যবহারকারীদের একবার স্টোরেজে লেখা হয়। তবে, প্রযুক্তিগত সীমাবদ্ধতার কারণে, Authentication এমুলেটর দুবার স্টোর করতে লিখে, একবার ব্যবহারকারী তৈরির পরে এবং অন্যটি সাইন-ইন করার পরে। এর অর্থ হল নতুন ব্যবহারকারীদের জন্য, আপনি Authentication এমুলেটরে getAuth().getUser() in beforeSignIn সফলভাবে কল করতে পারেন, কিন্তু প্রোডাকশনে এটি করার সময় আপনি একটি ত্রুটির সম্মুখীন হবেন।
এরপর কী?
ভিডিওর একটি সেট এবং বিস্তারিত কীভাবে করবেন তার উদাহরণের জন্য, Firebase Emulators Training Playlist অনুসরণ করুন।
যেহেতু ট্রিগার করা ফাংশনগুলি Authentication সাথে একটি সাধারণ ইন্টিগ্রেশন, তাই Firebase এমুলেটরের জন্য ক্লাউড ফাংশন সম্পর্কে আরও জানুন Run ফাংশন স্থানীয়ভাবে ।