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

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

শুরু করার আগে

  1. যদি আপনি ইতিমধ্যেই না করে থাকেন, তাহলে আপনার অ্যান্ড্রয়েড প্রজেক্টে Firebase যোগ করুন
  2. আপনার মডিউল (অ্যাপ-লেভেল) গ্র্যাডেল ফাইলে (সাধারণত <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: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")
    }

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

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

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

  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
        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

    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 পদ্ধতিগুলির মধ্যে একটিতে কল করার জন্য সাইন-ইন প্রবাহ সম্পূর্ণ করুন, কিন্তু অন্তর্ভুক্ত নয়। উদাহরণস্বরূপ, ব্যবহারকারীর Google ID টোকেন, Facebook অ্যাক্সেস টোকেন, অথবা ইমেল ঠিকানা এবং পাসওয়ার্ড পান।
  2. নতুন প্রমাণীকরণ প্রদানকারীর জন্য একটি AuthCredential পান:

    গুগল সাইন-ইন

    Kotlin

    val credential = GoogleAuthProvider.getCredential(googleIdToken, null)

    Java

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

    Kotlin

    val credential = FacebookAuthProvider.getCredential(token.token)

    Java

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

    Kotlin

    val credential = EmailAuthProvider.getCredential(email, password)

    Java

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

    Kotlin

    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 Loggingis_anon দ্বারা ফিল্টার করতে পারেন।

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

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