অ্যান্ড্রয়েডে বেনামে Firebase দিয়ে প্রমাণীকরণ করুন

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

আপনি শুরু করার আগে

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন তাহলে আপনার Android প্রকল্পে Firebase যোগ করুন
  2. আপনার মডিউলে (অ্যাপ-লেভেল) গ্রেডল ফাইলে (সাধারণত <project>/<app-module>/build.gradle.kts বা <project>/<app-module>/build.gradle ), Firebase Authentication জন্য নির্ভরতা যোগ করুন অ্যান্ড্রয়েডের জন্য লাইব্রেরি। আমরা লাইব্রেরি সংস্করণ নিয়ন্ত্রণ করতে Firebase Android BoM ব্যবহার করার পরামর্শ দিই।
    dependencies {
        // Import the BoM for the Firebase platform
        implementation(platform("com.google.firebase:firebase-bom:33.4.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 লাইব্রেরি সংস্করণ তার নির্ভরতা লাইনে উল্লেখ করতে হবে।

    মনে রাখবেন যে আপনি যদি আপনার অ্যাপে একাধিক ফায়ারবেস লাইব্রেরি ব্যবহার করেন, আমরা দৃঢ়ভাবে লাইব্রেরি সংস্করণগুলি পরিচালনা করতে 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:23.0.0")
    }
    একটি কোটলিন-নির্দিষ্ট লাইব্রেরি মডিউল খুঁজছেন? অক্টোবর 2023 থেকে শুরু হচ্ছে ( Firebase BoM 32.5.0) , Kotlin এবং Java ডেভেলপাররা প্রধান লাইব্রেরি মডিউলের উপর নির্ভর করতে পারে (বিশদ বিবরণের জন্য, এই উদ্যোগ সম্পর্কে প্রায়শই জিজ্ঞাসিত প্রশ্ন দেখুন)।
  3. আপনি যদি এখনও আপনার অ্যাপটিকে আপনার Firebase প্রকল্পের সাথে সংযুক্ত না করে থাকেন, তাহলে Firebase কনসোল থেকে তা করুন৷
  4. বেনামী প্রমাণীকরণ সক্ষম করুন:
    1. Firebase কনসোলে , Auth বিভাগটি খুলুন।
    2. সাইন-ইন পদ্ধতি পৃষ্ঠায়, বেনামী সাইন-ইন পদ্ধতি সক্ষম করুন।
    3. ঐচ্ছিক : আপনি যদি আপনার প্রোজেক্টকে Firebase Authentication with Identity Platform আপগ্রেড করে থাকেন, তাহলে আপনি স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করতে পারেন। আপনি যখন এই সেটিংটি সক্ষম করবেন, 30 দিনের বেশি পুরানো বেনামী অ্যাকাউন্টগুলি স্বয়ংক্রিয়ভাবে মুছে যাবে৷ স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করা প্রকল্পগুলিতে, বেনামী প্রমাণীকরণ আর ব্যবহার সীমা বা বিলিং কোটার জন্য গণনা করা হবে না। স্বয়ংক্রিয় পরিষ্কার-আপ দেখুন।

বেনামে Firebase দিয়ে প্রমাণীকরণ করুন

যখন একজন সাইন-আউট হওয়া ব্যবহারকারী একটি অ্যাপ বৈশিষ্ট্য ব্যবহার করেন যার জন্য Firebase-এর সাথে প্রমাণীকরণের প্রয়োজন হয়, তখন নিম্নলিখিত ধাপগুলি সম্পূর্ণ করে বেনামে ব্যবহারকারীকে সাইন ইন করুন:

  1. আপনার কার্যকলাপের onCreate পদ্ধতিতে, FirebaseAuth অবজেক্টের ভাগ করা উদাহরণ পান:

    Kotlin+KTX

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

    Java

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

    Kotlin+KTX

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

    Java

    @Override
    public void onStart() {
        super.onStart();
        // Check if user is signed in (non-null) and update UI accordingly.
        FirebaseUser currentUser = mAuth.getCurrentUser();
        updateUI(currentUser);
    }
  3. অবশেষে, বেনামী ব্যবহারকারী হিসাবে সাইন ইন করতে signInAnonymously কল করুন:

    Kotlin+KTX

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

    Java

    mAuth.signInAnonymously()
            .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, "signInAnonymously:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        updateUI(user);
                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "signInAnonymously:failure", task.getException());
                        Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });
    সাইন-ইন সফল হলে আপনি ব্যবহারকারীর অ্যাকাউন্ট ডেটা পেতে getCurrentUser পদ্ধতি ব্যবহার করতে পারেন।

একটি বেনামী অ্যাকাউন্ট একটি স্থায়ী অ্যাকাউন্টে রূপান্তর করুন

যখন একজন বেনামী ব্যবহারকারী আপনার অ্যাপে সাইন আপ করেন, তখন আপনি তাদের নতুন অ্যাকাউন্ট দিয়ে তাদের কাজ চালিয়ে যাওয়ার অনুমতি দিতে চাইতে পারেন—উদাহরণস্বরূপ, ব্যবহারকারীরা তাদের নতুন অ্যাকাউন্টে সাইন আপ করার আগে তাদের শপিং কার্টে যোগ করা আইটেমগুলি আপনি করতে চাইতে পারেন। অ্যাকাউন্টের শপিং কার্ট। এটি করতে, নিম্নলিখিত পদক্ষেপগুলি সম্পূর্ণ করুন:

  1. ব্যবহারকারী সাইন আপ করলে, FirebaseAuth.signInWith পদ্ধতিগুলির একটিতে কল করে ব্যবহারকারীর প্রমাণীকরণ প্রদানকারীর জন্য সাইন-ইন প্রবাহ সম্পূর্ণ করুন, কিন্তু অন্তর্ভুক্ত নয়। উদাহরণস্বরূপ, ব্যবহারকারীর গুগল আইডি টোকেন, ফেসবুক অ্যাক্সেস টোকেন বা ইমেল ঠিকানা এবং পাসওয়ার্ড পান।
  2. নতুন প্রমাণীকরণ প্রদানকারীর জন্য একটি AuthCredential পান:

    Google সাইন-ইন

    Kotlin+KTX

    val credential = GoogleAuthProvider.getCredential(googleIdToken, null)

    Java

    AuthCredential credential = GoogleAuthProvider.getCredential(googleIdToken, null);
    ফেসবুক লগইন

    Kotlin+KTX

    val credential = FacebookAuthProvider.getCredential(token.token)

    Java

    AuthCredential credential = FacebookAuthProvider.getCredential(token.getToken());
    ইমেল-পাসওয়ার্ড সাইন-ইন

    Kotlin+KTX

    val credential = EmailAuthProvider.getCredential(email, password)

    Java

    AuthCredential credential = EmailAuthProvider.getCredential(email, password);
  3. সাইন-ইন ব্যবহারকারীর linkWithCredential পদ্ধতিতে AuthCredential অবজেক্টটি পাস করুন:

    Kotlin+KTX

    auth.currentUser!!.linkWithCredential(credential)
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                Log.d(TAG, "linkWithCredential:success")
                val user = task.result?.user
                updateUI(user)
            } else {
                Log.w(TAG, "linkWithCredential:failure", task.exception)
                Toast.makeText(
                    baseContext,
                    "Authentication failed.",
                    Toast.LENGTH_SHORT,
                ).show()
                updateUI(null)
            }
        }

    Java

    mAuth.getCurrentUser().linkWithCredential(credential)
            .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        Log.d(TAG, "linkWithCredential:success");
                        FirebaseUser user = task.getResult().getUser();
                        updateUI(user);
                    } else {
                        Log.w(TAG, "linkWithCredential:failure", task.getException());
                        Toast.makeText(AnonymousAuthActivity.this, "Authentication failed.",
                                Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });

linkWithCredential এর কল সফল হলে, ব্যবহারকারীর নতুন অ্যাকাউন্ট বেনামী অ্যাকাউন্টের Firebase ডেটা অ্যাক্সেস করতে পারে।

স্বয়ংক্রিয় ক্লিন-আপ

আপনি যদি আপনার প্রোজেক্টটিকে Firebase Authentication with Identity Platform আপগ্রেড করে থাকেন, তাহলে আপনি Firebase কনসোলে স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করতে পারেন। আপনি যখন এই বৈশিষ্ট্যটি সক্ষম করবেন তখন আপনি Firebaseকে 30 দিনের বেশি পুরানো বেনামী অ্যাকাউন্টগুলি স্বয়ংক্রিয়ভাবে মুছে ফেলার অনুমতি দেবেন। স্বয়ংক্রিয় ক্লিন-আপ সক্ষম করা প্রকল্পগুলিতে, বেনামী প্রমাণীকরণ ব্যবহারের সীমা বা বিলিং কোটার জন্য গণনা করা হবে না।

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

আপনি যদি দেখতে চান যে আপনি এই বৈশিষ্ট্যটি সক্ষম করার আগে কতজন ব্যবহারকারী প্রভাবিত হবেন, এবং আপনি আপনার প্রকল্পটিকে Firebase Authentication with Identity Platform আপগ্রেড করেছেন, আপনি Cloud Logging-is_anon দ্বারা ফিল্টার করতে পারেন।

পরবর্তী পদক্ষেপ

এখন যেহেতু ব্যবহারকারীরা Firebase দিয়ে প্রমাণীকরণ করতে পারে, আপনি Firebase নিয়মগুলি ব্যবহার করে আপনার Firebase ডাটাবেসের ডেটাতে তাদের অ্যাক্সেস নিয়ন্ত্রণ করতে পারেন।