Apple প্ল্যাটফর্মে Firebase যাচাইকরণ ব্যবহার শুরু করা

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

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

  1. Firebase SDK ইনস্টল করুন।
  2. Firebase কনসোলে, আপনার Firebase প্রোজেক্টে আপনার অ্যাপ যোগ করুন।

আপনার অ্যাপে Firebase Authentication যোগ করুন

Firebase ডিপেন্ডেন্সি ইনস্টল ও ম্যানেজ করতে Swift প্যাকেজ ম্যানেজার ব্যবহার করুন।

আপনার Apple প্রোজেক্টে Firebase SDK যোগ করার বিভিন্ন উপায় সম্পর্কে জানতে
  1. Xcode-এ, আপনার অ্যাপ প্রোজেক্ট খোলা রেখে, ফাইল > প্যাকেজ যোগ করুন বিকল্পে নেভিগেট করুন।
  2. প্রম্পট করা হলে, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরি যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Firebase Authentication লাইব্রেরি বেছে নিন।
  5. আপনার টার্গেটের বিল্ড সেটিংসের অন্যান্য লিঙ্কার ফ্ল্যাগ বিভাগে -ObjC ফ্ল্যাগ যোগ করুন।
  6. হয়ে গেলে, Xcode অটোমেটিক ব্যাকগ্রাউন্ডে আপনার ডিপেন্ডেন্সি সমাধান ও ডাউনলোড করা শুরু করবে।

(ঐচ্ছিক) Firebase Local Emulator Suite-এর সাহায্যে প্রোটোটাইপ ও পরীক্ষা করুন

আপনার অ্যাপ কীভাবে ব্যবহারকারীদের যাচাই করে তা নিয়ে কথা বলার আগে, আসুন এমন কিছু টুলের সাথে পরিচিত হই যেগুলি আপনি Authentication কার্যকারিতা প্রোটোটাইপ এবং পরীক্ষা করতে ব্যবহার করতে পারেন: Firebase Local Emulator Suite. আপনি যদি যাচাইকরণ টেকনিক ও পরিষেবা প্রদানকারীর মধ্যে থেকে বেছে নেওয়ার সিদ্ধান্ত নেন, Authentication ও Firebase Security Rules ব্যবহার করে সর্বজনীন ও ব্যক্তিগত ডেটা সহ বিভিন্ন ডেটা মডেল ব্যবহার করে দেখেন অথবা সাইন-ইন UI ডিজাইনের প্রোটোটাইপ তৈরি করেন, তাহলে লাইভ পরিষেবা ডিপ্লয় না করে লোকালি কাজ করতে পারাটা দারুণ আইডিয়া হতে পারে।

Authentication এমুলেটর হল Local Emulator Suite-এর অংশ, যা আপনার অ্যাপকে এমুলেট করা ডেটাবেস কন্টেন্ট ও কনফিগারেশনের সাথে ইন্টার‍্যাক্ট করতে দেয়, পাশাপাশি আপনার এমুলেট করা প্রোজেক্ট রিসোর্স (ফাংশন, অন্যান্য ডেটাবেস ও নিরাপত্তা সংক্রান্ত নিয়ম) ঐচ্ছিকভাবে ব্যবহার করতে দেয়।

Authentication এমুলেটর ব্যবহার করার জন্য মাত্র কয়েকটি ধাপ অনুসরণ করতে হয়:

  1. এমুলেটরের সাথে কানেক্ট করার জন্য আপনার অ্যাপের টেস্ট কনফিগারেশনে কোডের একটি লাইন যোগ করা।
  2. আপনার লোকাল প্রোজেক্ট ডিরেক্টরির রুট থেকে, firebase emulators:start রান করা।
  3. ইন্টার‍্যাক্টিভ প্রোটোটাইপিংয়ের জন্য Local Emulator Suite UI ব্যবহার করা অথবা নন-ইন্টার‍্যাক্টিভ টেস্টিংয়ের জন্য Authentication এমুলেটর REST API ব্যবহার করা।

আপনার অ্যাপকে Authentication এমুলেটরের সাথে কানেক্ট করুন লিঙ্কে বিস্তারিত নির্দেশিকা উপলভ্য আছে। আরও তথ্যের জন্য, Local Emulator Suite ভূমিকা দেখুন।

এখন ব্যবহারকারীদের কীভাবে যাচাই করতে হয় তা দেখা যাক।

Firebase SDK শুরু করা

আপনার অ্যাপ ডেলিগেটে, প্রথমে Firebase SDK ইমপোর্ট করুন:

Swift

import FirebaseCore

Objective-C

@import FirebaseCore;

তারপর, application:didFinishLaunchingWithOptions: পদ্ধতিতে, FirebaseApp অবজেক্ট ইনিশিয়ালাইজ করুন:

Swift

// Use Firebase library to configure APIs
FirebaseApp.configure()

Objective-C

// Use Firebase library to configure APIs
[FIRApp configure];

প্রমাণীকরণ অবস্থার জন্য শুনুন

আপনার অ্যাপের প্রতিটি ভিউয়ের জন্য সাইন-ইন করা ব্যবহারকারীর তথ্য প্রয়োজন, FIRAuth অবজেক্টে একটি লিসেনার অ্যাটাচ করুন। ব্যবহারকারীর সাইন-ইন স্ট্যাটাস পরিবর্তন হলে এই লিসেনারকে কল করা হয়।

ভিউ কন্ট্রোলারের viewWillAppear পদ্ধতিতে লিসেনার অ্যাটাচ করুন:

Swift

handle = Auth.auth().addStateDidChangeListener { auth, user in
  // ...
}

Objective-C

self.handle = [[FIRAuth auth]
    addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
      // ...
    }];

এবং ভিউ কন্ট্রোলারের viewWillDisappear পদ্ধতিতে লিসেনার ডিটাচ করুন:

Swift

Auth.auth().removeStateDidChangeListener(handle!)

Objective-C

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

নতুন ব্যবহারকারীদের সাইন-আপ করুন

এমন একটি ফর্ম তৈরি করুন যা নতুন ব্যবহারকারীদের তাদের ইমেল আইডি এবং পাসওয়ার্ড ব্যবহার করে আপনার অ্যাপে রেজিস্টার করতে দেয়। ব্যবহারকারী ফর্ম পূরণ করলে, তার দেওয়া ইমেল আইডি ও পাসওয়ার্ড যাচাই করুন, তারপর সেগুলি createUser মেথডে পাস করুন:

Swift

Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
  // ...
}

Objective-C

[[FIRAuth auth] createUserWithEmail:email
                           password:password
                         completion:^(FIRAuthDataResult * _Nullable authResult,
                                      NSError * _Nullable error) {
  // ...
}];

আগে থেকেই আছেন এমন ব্যবহারকারীদের সাইন-ইন করা

এমন একটি ফর্ম তৈরি করুন যা আগে থেকে থাকা ব্যবহারকারীদের তাদের ইমেল আইডি এবং পাসওয়ার্ড ব্যবহার করে সাইন-ইন করতে দেয়। ব্যবহারকারী ফর্ম পূরণ করা সম্পূর্ণ করলে, signIn মেথড কল করুন:

Swift

Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
  guard let strongSelf = self else { return }
  // ...
}

Objective-C

[[FIRAuth auth] signInWithEmail:self->_emailField.text
                       password:self->_passwordField.text
                     completion:^(FIRAuthDataResult * _Nullable authResult,
                                  NSError * _Nullable error) {
  // ...
}];

ব্যবহারকারীর তথ্য পান

ব্যবহারকারী সাইন-ইন করার পরে, আপনি তার সম্পর্কে তথ্য পেতে পারেন। যেমন, আপনার authentication state listener-এ:

Swift

if let user = user {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  let uid = user.uid
  let email = user.email
  let photoURL = user.photoURL
  var multiFactorString = "MultiFactor: "
  for info in user.multiFactor.enrolledFactors {
    multiFactorString += info.displayName ?? "[DispayName]"
    multiFactorString += " "
  }
  // ...
}

Objective-C

if (user) {
  // The user's ID, unique to the Firebase project.
  // Do NOT use this value to authenticate with your backend server,
  // if you have one. Use getTokenWithCompletion:completion: instead.
  NSString *email = user.email;
  NSString *uid = user.uid;
  NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
  for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
    [multiFactorString appendString:info.displayName];
    [multiFactorString appendString:@" "];
  }
  NSURL *photoURL = user.photoURL;
  // ...
}

পরবর্তী ধাপ

অন্যান্য পরিচয় প্রদানকারী এবং বেনামী গেস্ট অ্যাকাউন্টের জন্য কীভাবে সহায়তা যোগ করতে হয় তা জানুন: