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

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

শুরু করার আগে

  1. যদি আগে থেকে না করে থাকেন, তাহলে ‘শুরু করার নির্দেশিকা’-তে দেওয়া ধাপগুলো অনুসরণ করুন।

  2. বেনামী সাইন-ইন সক্ষম করুন:

    • Firebase কনসোলের Authentication সেকশনে, Sign in method পেজটি খুলুন।
    • সাইন ইন পদ্ধতি পৃষ্ঠা থেকে, বেনামী সাইন-ইন পদ্ধতিটি সক্রিয় করুন এবং সংরক্ষণ করুন -এ ক্লিক করুন।

ফায়ারবেসের মাধ্যমে বেনামে প্রমাণীকরণ করুন

যখন কোনো সাইন-আউট করা ব্যবহারকারী অ্যাপের এমন কোনো ফিচার ব্যবহার করেন যার জন্য Firebase-এর মাধ্যমে অথেনটিকেশন প্রয়োজন, তখন signInAnonymously() কল করে ব্যবহারকারীকে বেনামে সাইন ইন করুন:

try {
  final userCredential =
      await FirebaseAuth.instance.signInAnonymously();
  print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
  switch (e.code) {
    case "operation-not-allowed":
      print("Anonymous auth hasn't been enabled for this project.");
      break;
    default:
      print("Unknown error.");
  }
}

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

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

  1. যখন ব্যবহারকারী সাইন আপ করেন, তখন ` signInWith মেথডগুলোর কোনো একটি কল করা ছাড়া, ব্যবহারকারীর অথেনটিকেশন প্রোভাইডারের জন্য সাইন-ইন প্রক্রিয়াটি সম্পূর্ণ করুন। উদাহরণস্বরূপ, ব্যবহারকারীর গুগল আইডি টোকেন, ফেসবুক অ্যাক্সেস টোকেন, অথবা ইমেল অ্যাড্রেস এবং পাসওয়ার্ড সংগ্রহ করুন।

  2. নতুন প্রমাণীকরণ প্রদানকারীর জন্য একটি Credential অবজেক্ট নিন:

    // Google Sign-in
    final credential = GoogleAuthProvider.credential(idToken: idToken);
    
    // Email and password sign-in
    final credential =
        EmailAuthProvider.credential(email: emailAddress, password: password);
    
    // Etc.
    
  3. সাইন-ইন করা ব্যবহারকারীর linkWithCredential() মেথডে Credential অবজেক্টটি পাস করুন:

    try {
      final userCredential = await FirebaseAuth.instance.currentUser
          ?.linkWithCredential(credential);
    } on FirebaseAuthException catch (e) {
      switch (e.code) {
        case "provider-already-linked":
          print("The provider has already been linked to the user.");
          break;
        case "invalid-credential":
          print("The provider's credential is not valid.");
          break;
        case "credential-already-in-use":
          print("The account corresponding to the credential already exists, "
              "or is already linked to a Firebase User.");
          break;
        // See the API reference for the full list of error codes.
        default:
          print("Unknown error.");
      }
      ```
    

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

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

কোনো ব্যবহারকারী একটি নতুন অ্যাকাউন্ট তৈরি করার পর, এই অ্যাকাউন্টটি আপনার Firebase প্রজেক্টের অংশ হিসেবে সংরক্ষিত হয় এবং ব্যবহারকারী কোন সাইন-ইন পদ্ধতি ব্যবহার করেছেন তা নির্বিশেষে, আপনার প্রজেক্টের প্রতিটি অ্যাপে তাকে শনাক্ত করতে এটি ব্যবহার করা যেতে পারে।

আপনার অ্যাপে, আপনি User অবজেক্ট থেকে ব্যবহারকারীর প্রাথমিক প্রোফাইল তথ্য পেতে পারেন। ব্যবহারকারী ব্যবস্থাপনা (Manage Users) দেখুন।

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

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

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

await FirebaseAuth.instance.signOut();