ফ্লটারে ফায়ারবেস প্রমাণীকরণের সাথে শুরু করুন

আপনার অ্যাপটিকে Firebase-এ সংযুক্ত করুন

আপনি যদি ইতিমধ্যে এটি না করে থাকেন তবে ফ্লটারের জন্য Firebase SDK ইনস্টল করুন এবং শুরু করুন

আপনার অ্যাপে Firebase প্রমাণীকরণ যোগ করুন

  1. আপনার ফ্লাটার প্রকল্পের মূল থেকে, প্লাগইন ইনস্টল করতে নিম্নলিখিত কমান্ডটি চালান:

    flutter pub add firebase_auth
    
  2. একবার সম্পূর্ণ হয়ে গেলে, আপনার ফ্লাটার অ্যাপ্লিকেশন পুনর্নির্মাণ করুন:

    flutter run
    
  3. আপনার ডার্ট কোডে প্লাগইন আমদানি করুন:

    import 'package:firebase_auth/firebase_auth.dart';
    

একটি প্রমাণীকরণ প্রদানকারী ব্যবহার করতে, আপনাকে এটি Firebase কনসোলে সক্ষম করতে হবে। আপনার অ্যাপের জন্য ইমেল/পাসওয়ার্ড সাইন-ইন এবং অন্য কোনো পরিচয় প্রদানকারীকে সক্ষম করতে Firebase প্রমাণীকরণ বিভাগে সাইন-ইন পদ্ধতি পৃষ্ঠায় যান।

(ঐচ্ছিক) ফায়ারবেস স্থানীয় এমুলেটর স্যুটের সাথে প্রোটোটাইপ এবং পরীক্ষা করুন

আপনার অ্যাপ কীভাবে ব্যবহারকারীদের প্রমাণীকরণ করে সে সম্পর্কে কথা বলার আগে, আসুন প্রমাণীকরণ কার্যকারিতা প্রোটোটাইপ এবং পরীক্ষা করার জন্য আপনি ব্যবহার করতে পারেন এমন সরঞ্জামগুলির একটি সেট পরিচয় করিয়ে দেওয়া যাক: ফায়ারবেস স্থানীয় এমুলেটর স্যুট। আপনি যদি প্রমাণীকরণ কৌশল এবং প্রদানকারীদের মধ্যে সিদ্ধান্ত নিচ্ছেন, প্রমাণীকরণ এবং ফায়ারবেস নিরাপত্তা নিয়ম ব্যবহার করে পাবলিক এবং প্রাইভেট ডেটা সহ বিভিন্ন ডেটা মডেল ব্যবহার করে দেখুন, বা সাইন-ইন UI ডিজাইনের প্রোটোটাইপিং করুন, লাইভ পরিষেবাগুলি স্থাপন না করে স্থানীয়ভাবে কাজ করতে সক্ষম হওয়া একটি দুর্দান্ত ধারণা হতে পারে। .

একটি প্রমাণীকরণ এমুলেটর হল স্থানীয় এমুলেটর স্যুটের অংশ, যা আপনার অ্যাপকে এমুলেটেড ডাটাবেস সামগ্রী এবং কনফিগারেশনের সাথে ইন্টারঅ্যাক্ট করতে সক্ষম করে, সেইসাথে ঐচ্ছিকভাবে আপনার অনুকরণ করা প্রকল্প সংস্থানগুলি (ফাংশন, অন্যান্য ডাটাবেস এবং নিরাপত্তা নিয়ম)।

প্রমাণীকরণ এমুলেটর ব্যবহার করা মাত্র কয়েকটি ধাপ জড়িত:

  1. এমুলেটরের সাথে সংযোগ করতে আপনার অ্যাপের পরীক্ষা কনফিগারে কোডের একটি লাইন যোগ করা হচ্ছে।

  2. আপনার স্থানীয় প্রজেক্ট ডিরেক্টরির রুট থেকে, firebase emulators:start

  3. ইন্টারেক্টিভ প্রোটোটাইপিংয়ের জন্য স্থানীয় এমুলেটর স্যুট UI ব্যবহার করা, অথবা অ-ইন্টারেক্টিভ পরীক্ষার জন্য প্রমাণীকরণ এমুলেটর REST API ব্যবহার করা।

  4. এমুলেটর ঠিকানা এবং পোর্ট উল্লেখ করতে useAuthEmulator() কে কল করুন:

    Future<void> main() async {
    WidgetsFlutterBinding.ensureInitialized();
    await Firebase.initializeApp();
    
    // Ideal time to initialize
    await FirebaseAuth.instance.useAuthEmulator('localhost', 9099);
    //...
    }
    

একটি বিস্তারিত নির্দেশিকা Connect your app to the Authentication emulator-এ উপলব্ধ। আরও তথ্যের জন্য, স্থানীয় এমুলেটর স্যুটের ভূমিকা দেখুন।

এখন চলুন কিভাবে ব্যবহারকারীদের প্রমাণীকরণ করা যায়।

বর্তমান প্রমাণীকরণের অবস্থা পরীক্ষা করুন

Firebase Auth আপনাকে আপনার নতুন বা বিদ্যমান Flutter অ্যাপ্লিকেশনে সুরক্ষিত প্রমাণীকরণকে একীভূত করতে সক্ষম করার জন্য অনেক পদ্ধতি এবং ইউটিলিটি প্রদান করে। অনেক ক্ষেত্রে, আপনাকে আপনার ব্যবহারকারীর প্রমাণীকরণ অবস্থা সম্পর্কে জানতে হবে, যেমন তারা লগ ইন করেছে বা লগ আউট করেছে কিনা।

Firebase Auth আপনাকে একটি Stream মাধ্যমে এই অবস্থায় রিয়েলটাইমে সদস্যতা নিতে সক্ষম করে। একবার কল করা হলে, স্ট্রীমটি ব্যবহারকারীর বর্তমান প্রমাণীকরণ অবস্থার একটি তাৎক্ষণিক ইভেন্ট প্রদান করে এবং তারপর যখনই প্রমাণীকরণের অবস্থা পরিবর্তিত হয় তখন পরবর্তী ইভেন্টগুলি প্রদান করে।

প্রমাণীকরণ অবস্থার পরিবর্তনগুলি শোনার জন্য তিনটি পদ্ধতি রয়েছে:

authStateChanges()

এই পরিবর্তনগুলিতে সদস্যতা নিতে, আপনার FirebaseAuth উদাহরণে authStateChanges() পদ্ধতিতে কল করুন:

FirebaseAuth.instance
  .authStateChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

নিম্নলিখিতগুলি ঘটলে ইভেন্টগুলি বরখাস্ত করা হয়:

  • শ্রোতা নিবন্ধিত হয়েছে ঠিক পরে.
  • যখন একজন ব্যবহারকারী সাইন ইন করেন।
  • যখন বর্তমান ব্যবহারকারী সাইন আউট হয়।

idTokenChanges()

এই পরিবর্তনগুলিতে সদস্যতা নিতে, আপনার FirebaseAuth উদাহরণে idTokenChanges() পদ্ধতিতে কল করুন:

FirebaseAuth.instance
  .idTokenChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

নিম্নলিখিতগুলি ঘটলে ইভেন্টগুলি বরখাস্ত করা হয়:

  • শ্রোতা নিবন্ধিত হয়েছে ঠিক পরে.
  • যখন একজন ব্যবহারকারী সাইন ইন করেন।
  • যখন বর্তমান ব্যবহারকারী সাইন আউট হয়।
  • যখন বর্তমান ব্যবহারকারীর টোকেন পরিবর্তন হয়।

userChanges()

এই পরিবর্তনগুলিতে সদস্যতা নিতে, আপনার FirebaseAuth উদাহরণে userChanges() পদ্ধতিতে কল করুন:

FirebaseAuth.instance
  .userChanges()
  .listen((User? user) {
    if (user == null) {
      print('User is currently signed out!');
    } else {
      print('User is signed in!');
    }
  });

নিম্নলিখিতগুলি ঘটলে ইভেন্টগুলি বরখাস্ত করা হয়:

  • শ্রোতা নিবন্ধিত হয়েছে ঠিক পরে.
  • যখন একজন ব্যবহারকারী সাইন ইন করেন।
  • যখন বর্তমান ব্যবহারকারী সাইন আউট হয়।
  • যখন বর্তমান ব্যবহারকারীর টোকেন পরিবর্তন হয়।
  • FirebaseAuth.instance.currentUser দ্বারা প্রদত্ত নিম্নলিখিত পদ্ধতিগুলিকে যখন কল করা হয়:
    • reload()
    • unlink()
    • updateEmail()
    • updatePassword()
    • updatePhoneNumber()
    • updateProfile()

স্থায়ী প্রমাণীকরণ অবস্থা

সমস্ত প্ল্যাটফর্মের জন্য Firebase SDKগুলি অ্যাপ রিস্টার্ট বা পৃষ্ঠা পুনরায় লোড করার সময় আপনার ব্যবহারকারীর প্রমাণীকরণের অবস্থা বজায় রয়েছে তা নিশ্চিত করার জন্য বাক্সের বাইরে সহায়তা প্রদান করে।

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

ওয়েব প্ল্যাটফর্মে, ব্যবহারকারীর প্রমাণীকরণের অবস্থা IndexedDB- তে সংরক্ষণ করা হয়। আপনি Persistence.LOCAL ব্যবহার করে স্থানীয় স্টোরেজে ডেটা সঞ্চয় করার জন্য অধ্যবসায় পরিবর্তন করতে পারেন। যদি প্রয়োজন হয়, আপনি এই ডিফল্ট আচরণ পরিবর্তন করতে পারেন শুধুমাত্র বর্তমান সেশনের জন্য প্রমাণীকরণ অবস্থা বজায় রাখতে, বা একেবারেই নয়। এই সেটিংস কনফিগার করতে, নিম্নলিখিত পদ্ধতিতে কল করুন FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.LOCAL); . আপনি এখনও setPersistence(Persistence.NONE) ব্যবহার করে প্রতিটি প্রমাণীকরণ উদাহরণের জন্য অধ্যবসায় আপডেট করতে পারেন।

// Disable persistence on web platforms. Must be called on initialization:
final auth = FirebaseAuth.instanceFor(app: Firebase.app(), persistence: Persistence.NONE);
// To change it after initialization, use `setPersistence()`:
await auth.setPersistence(Persistence.LOCAL);

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

সমর্থিত পরিচয় এবং প্রমাণীকরণ পরিষেবাগুলির সাথে ব্যবহারকারীদের সাইন ইন এবং সাইন আপ করার নির্দেশিকাগুলি অন্বেষণ করুন৷