Android-এ পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট ব্যবহার করে Firebase-এর মাধ্যমে যাচাইকরণ

আপনার ব্যবহারকারীদের ইমেল আইডি ও পাসওয়ার্ড ব্যবহার করে Firebase-এর মাধ্যমে প্রমাণিত করতে এবং আপনার অ্যাপের পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট ম্যানেজ করতে, আপনি Firebase Authentication ব্যবহার করতে পারবেন।

AI সহায়তা পেতে, নিচে দেওয়া প্রম্পটটি আপনার AI কোডিং এজেন্টে কপি করুন (যেমন, Android Studio-তে Gemini, Antigravity, Claude Code, Codex ও Cursor)। আপনি প্রম্পট কাস্টমাইজ করতে এবং এজেন্টের সাথে আইটেরেট করতে পারবেন। ইনস্টলেশন সংক্রান্ত বিস্তারিত তথ্য পেতে Firebase এজেন্ট দক্ষতা দেখুন।

Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up and use Firebase Authentication with email and password authentication in my app.

শুরু করার আগে

  1. আপনি আগে থেকে না করে থাকলে, আপনার Android প্রোজেক্টে Firebase যোগ করুন।

  2. আপনি এখনও Firebase প্রোজেক্টের সাথে অ্যাপ কানেক্ট না করে থাকলে, Firebase কনসোল থেকে এটি করুন।
  3. আপনার Firebase প্রোজেক্টের জন্য সাইন-ইন পরিষেবা প্রদানকারী হিসেবে ইমেল/পাসওয়ার্ড চালু করুন:
    1. Firebase কনসোলে গিয়ে নিরাপত্তা > যাচাইকরণ বিকল্পে যান।
    2. সাইন-ইন পদ্ধতি ট্যাবে, ইমেল/পাসওয়ার্ড সাইন-ইন প্রদানকারীকে চালু করুন।
    3. সেভ করুন বিকল্পে ক্লিক করুন।
  4. আপনার মডিউল (অ্যাপ-লেভেল) Gradle ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts বা <project>/<app-module>/build.gradle), Android-এর জন্য Firebase Authentication লাইব্রেরির ডিপেন্ডেন্সি যোগ করুন। লাইব্রেরি ভার্সনিং কন্ট্রোল করতে Firebase Android BoM ব্যবহার করার সাজেশন দিই।

    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:35.0.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")
    }

    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:25.0.0")
    }

পাসওয়ার্ড-ভিত্তিক অ্যাকাউন্ট তৈরি করা

পাসওয়ার্ড সহ নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করতে, আপনার অ্যাপের সাইন-ইন অ্যাক্টিভিটিতে নিচের ধাপগুলি সম্পূর্ণ করুন:

  1. আপনার সাইন-আপ অ্যাক্টিভিটির onCreate পদ্ধতিতে, FirebaseAuth অবজেক্টের শেয়ার করা ইনস্ট্যান্স পান:

    Kotlin

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth

    Java

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();
  2. আপনার অ্যাক্টিভিটি শুরু করার সময়, ব্যবহারকারী বর্তমানে সাইন-ইন করে আছেন কিনা তা চেক করুন:

    Kotlin

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        if (currentUser != null) {
            reload()
        }
    }

    Java

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        if(currentUser != null){
            reload();
        }
    }
  3. কোনও নতুন ব্যবহারকারী আপনার অ্যাপের সাইন-আপ ফর্ম ব্যবহার করে সাইন-আপ করলে, আপনার অ্যাপের প্রয়োজনীয় নতুন অ্যাকাউন্ট যাচাইকরণ ধাপগুলি সম্পূর্ণ করুন, যেমন নতুন অ্যাকাউন্টের পাসওয়ার্ড সঠিকভাবে লেখা হয়েছে কিনা এবং সেটি আপনার জটিলতা সংক্রান্ত প্রয়োজনীয়তা পূরণ করছে কিনা তা যাচাই করা।
  4. নতুন ব্যবহারকারীর ইমেল আইডি ও পাসওয়ার্ড createUserWithEmailAndPassword-এ দিয়ে নতুন অ্যাকাউন্ট তৈরি করুন:

    Kotlin

    auth.createUserWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "createUserWithEmail:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.exception)
                Toast.makeText(
                    baseContext,
                    "Authentication failed.",
                    Toast.LENGTH_SHORT,
                ).show()
                updateUI(null)
            }
        }

    Java

    mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "createUserWithEmail:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        updateUI(user);
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "createUserWithEmail:failure", task.getException());
                        Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });
    নতুন অ্যাকাউন্ট তৈরি করা হলে, ব্যবহারকারী সাইন-ইনও করেন। কলব্যাকে, ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে, আপনি getCurrentUser পদ্ধতি ব্যবহার করতে পারবেন।

ইমেল আইডি ও পাসওয়ার্ড দিয়ে কোনও ব্যবহারকারীকে সাইন-ইন করানো

পাসওয়ার্ড দিয়ে কোনও ব্যবহারকারীকে সাইন-ইন করানোর ধাপগুলি নতুন অ্যাকাউন্ট তৈরি করার ধাপগুলির মতোই। আপনার অ্যাপের সাইন-ইন অ্যাক্টিভিটিতে, নিম্নলিখিত কাজগুলি করুন:

  1. আপনার সাইন-ইন অ্যাক্টিভিটির onCreate পদ্ধতিতে, FirebaseAuth অবজেক্টের শেয়ার করা ইনস্ট্যান্স পান:

    Kotlin

    private lateinit var auth: FirebaseAuth
    // ...
    // Initialize Firebase Auth
    auth = Firebase.auth

    Java

    private FirebaseAuth mAuth;
    // ...
    // Initialize Firebase Auth
    mAuth = FirebaseAuth.getInstance();
  2. আপনার অ্যাক্টিভিটি শুরু করার সময়, ব্যবহারকারী বর্তমানে সাইন-ইন করে আছেন কিনা তা চেক করুন:

    Kotlin

    public override fun onStart() {
        super.onStart()
        // Check if user is signed in (non-null) and update UI accordingly.
        val currentUser = auth.currentUser
        if (currentUser != null) {
            reload()
        }
    }

    Java

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        if(currentUser != null){
            reload();
        }
    }
  3. কোনও ব্যবহারকারী আপনার অ্যাপে সাইন-ইন করলে, ব্যবহারকারীর ইমেল আইডি ও পাসওয়ার্ড signInWithEmailAndPassword-এ পাস করুন:

    Kotlin

    auth.signInWithEmailAndPassword(email, password)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInWithEmail:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInWithEmail:failure", task.exception)
                Toast.makeText(
                    baseContext,
                    "Authentication failed.",
                    Toast.LENGTH_SHORT,
                ).show()
                updateUI(null)
            }
        }

    Java

    mAuth.signInWithEmailAndPassword(email, password)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "signInWithEmail:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        updateUI(user);
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInWithEmail:failure", task.getException());
                        Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });
    সাইন-ইন সফল হলে, আপনি প্রসেস চালিয়ে যেতে, ফেরত পাওয়া FirebaseUser ব্যবহার করতে পারবেন।

সাজেস্ট করা: পাসওয়ার্ড নীতি সেট করা

পাসওয়ার্ডের জটিলতা সংক্রান্ত প্রয়োজনীয়তা প্রয়োগ করে আপনি অ্যাকাউন্টের নিরাপত্তা উন্নত করতে পারবেন।

আপনার প্রোজেক্টের জন্য পাসওয়ার্ড নীতি কনফিগার করতে, Firebase কনসোলের নিরাপত্তা > অনুমোদন > সেটিংস ট্যাবে গিয়ে পাসওয়ার্ড নীতি বিভাগ খুলুন:

যাচাইকরণ সেটিংস

Firebase Authentication পাসওয়ার্ড নীতিতে নিম্নলিখিত পাসওয়ার্ড সংক্রান্ত প্রয়োজনীয়তা মেনে চলা হয়:

  • ছোট হাতের অক্ষর প্রয়োজন

  • বড় হাতের অক্ষর প্রয়োজন

  • সংখ্যাসূচক অক্ষর প্রয়োজন

  • বর্ণসাংখ্যিক অক্ষর ছাড়া অন্য অক্ষর প্রয়োজন

    নিম্নলিখিত অক্ষরগুলি বর্ণসাংখ্যিক অক্ষর নয় সংক্রান্ত প্রয়োজনীয়তা পূরণ করে: ^ $ * . [ ] { } ( ) ? " ! @ # % & / \ , > < ' : ; | _ ~

  • পাসওয়ার্ডের ন্যূনতম দৈর্ঘ্য (৬ থেকে ৩০টি অক্ষরের মধ্যে; ডিফল্ট হিসেবে ৬টি অক্ষর)

  • পাসওয়ার্ডের সর্বাধিক দৈর্ঘ্য (সর্বাধিক ৪০৯৬টি অক্ষর)

আপনি দুটি মোডে পাসওয়ার্ড নীতি এনফোর্সমেন্ট চালু করতে পারবেন:

  • প্রয়োজনীয়: ব্যবহারকারী আপনার নীতি মেনে চলে এমন পাসওয়ার্ড দিয়ে আপডেট না করা পর্যন্ত সাইন-আপ করার প্রচেষ্টা সফল হবে না।

  • বিজ্ঞপ্তি: ব্যবহারকারীরা নীতি মেনে চলে না এমন পাসওয়ার্ড দিয়ে সাইন-আপ করতে পারবেন। এই মোড ব্যবহার করার সময়, ব্যবহারকারীর পাসওয়ার্ড ক্লায়েন্ট-সাইড নীতি মেনে চলছে কিনা তা আপনাকে চেক করতে হবে এবং না চললে, কোনওভাবে ব্যবহারকারীকে তার পাসওয়ার্ড আপডেট করার জন্য প্রম্পট করতে হবে।

নতুন ব্যবহারকারীদের সবসময় এমন পাসওয়ার্ড বেছে নিতে হয় যা আপনার নীতি মেনে চলে।

আপনার অ্যাক্টিভ ব্যবহারকারী থাকলে, সাইন-ইন করার সময় জোর করে আপগ্রেড করার সুবিধা চালু না করার জন্য আমরা সাজেস্ট করি যদি না আপনি এমন ব্যবহারকারীদের অ্যাক্সেস ব্লক করতে চান যাদের পাসওয়ার্ড আপনার নীতি মেনে চলে না। পরিবর্তে, 'বিজ্ঞপ্তি' মোড ব্যবহার করুন, যা ব্যবহারকারীদের তাদের বর্তমান পাসওয়ার্ড দিয়ে সাইন-ইন করতে দেয় এবং তাদের পাসওয়ার্ডে কী কী প্রয়োজন নেই সেই সম্পর্কে জানায়।

সাজেস্ট করা: ইমেল এনুমেরেশন সুরক্ষা চালু করুন

কিছু Firebase Authentication পদ্ধতি, যেগুলি ইমেল আইডিকে প্যারামিটার হিসেবে নেয়, সেগুলি নির্দিষ্ট সমস্যা দেখায় যদি ইমেল আইডিটি রেজিস্টার করা না থাকে, যেখানে সেটি রেজিস্টার করা উচিত (যেমন, ইমেল আইডি ও পাসওয়ার্ড দিয়ে সাইন-ইন করার সময়) অথবা রেজিস্টার করা থাকে যেখানে সেটি ব্যবহার করা উচিত নয় (যেমন, ব্যবহারকারীর ইমেল আইডি পরিবর্তন করার সময়)। এটি ব্যবহারকারীদের নির্দিষ্ট সমাধান সাজেস্ট করার ব্যাপারে সহায়ক হলেও, আপনার ব্যবহারকারীদের রেজিস্টার করা ইমেল আইডি খুঁজে পেতে, খারাপ উদ্দেশ্য নিয়ে কাজ করা ব্যক্তিরা এর অপব্যবহার করতে পারে।

এই ঝুঁকি কমানোর জন্য, আমরা সাজেস্ট করি যে আপনার প্রোজেক্টের জন্য ইমেল এনুমেরেশন সুরক্ষা চালু করা আছে কিনা তা নিশ্চিত করুন। আপনি Firebase কনসোলে এই সেটিং চেক করতে পারবেন: নিরাপত্তা > যাচাইকরণ > সেটিংস ট্যাব-এ যান, এবং তারপর ব্যবহারকারীর অ্যাকশন বিকল্পে ক্লিক করুন।

মনে রাখবেন, এই ফিচার চালু করলে Firebase Authenticationএর জন্য সমস্যার রিপোর্ট করার আচরণ পরিবর্তন হয়ে যায়, তাই আপনার অ্যাপ যাতে আরও নির্দিষ্ট সমস্যার উপর নির্ভর না করে তা নিশ্চিত করুন।

পরবর্তী ধাপ

কোনও ব্যবহারকারী প্রথমবার সাইন-ইন করার পরে, একটি নতুন ব্যবহারকারীর অ্যাকাউন্ট তৈরি করা হয় এবং ক্রেডেনশিয়ালের সাথে লিঙ্ক করা হয়—অর্থাৎ, ব্যবহারকারীর নাম এবং পাসওয়ার্ড, ফোন নম্বর বা ব্যবহারকারী যে তথ্য দিয়ে সাইন-ইন করেছেন তা প্রদানকারীর তথ্য। এই নতুন অ্যাকাউন্ট আপনার Firebase প্রোজেক্টের অংশ হিসেবে স্টোর করা হয় এবং ব্যবহারকারী কীভাবে সাইন-ইন করেছেন তা নির্বিশেষে, আপনার প্রোজেক্টের প্রতিটি অ্যাপ জুড়ে কোনও ব্যবহারকারীকে শনাক্ত করতে ব্যবহার করা যেতে পারে।

  • আপনার অ্যাপে, আপনি FirebaseUser অবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল সংক্রান্ত তথ্য পেতে পারেন। ব্যবহারকারীদের ম্যানেজ করা দেখুন।

  • আপনার Firebase Realtime Database এবং Cloud Storage নিরাপত্তা বিধিতে, আপনি auth ভেরিয়েবল থেকে সাইন-ইন করা ব্যবহারকারীর অনন্য ব্যবহারকারী আইডি পেতে এবং ব্যবহারকারী কোন ডেটা অ্যাক্সেস করতে পারবেন তা নিয়ন্ত্রণ করতে এটি ব্যবহার করতে পারবেন।

আপনি আগে থেকে থাকা ব্যবহারকারীর অ্যাকাউন্টের সাথে অনুমোদন প্রদানকারীর ক্রেডেনশিয়াল লিঙ্ক করে একাধিক অনুমোদন প্রদানকারীর মাধ্যমে আপনার অ্যাপে সাইন-ইন করার জন্য ব্যবহারকারীদের অনুমতি দিতে পারেন।

কোনও ব্যবহারকারীকে সাইন-আউট করতে, signOut-এ কল করুন:

Kotlin

Firebase.auth.signOut()

Java

FirebaseAuth.getInstance().signOut();