Apple প্ল্যাটফর্মগুলিতে Firebase প্রমাণীকরণের সাথে শুরু করুন৷

You can use Firebase Authentication to allow users to sign in to your app using one or more sign-in methods, including email address and password sign-in, and federated identity providers such as Google Sign-in and Facebook Login. This tutorial gets you started with Firebase Authentication by showing you how to add email address and password sign-in to your app.

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

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

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

ফায়ারবেস নির্ভরতা ইনস্টল এবং পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

  1. Xcode-এ, আপনার অ্যাপ প্রজেক্ট খোলা থাকা অবস্থায়, File > Add Packages- এ নেভিগেট করুন।
  2. অনুরোধ করা হলে, Firebase Apple platforms 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 ব্যবহার করা।

একটি বিস্তারিত নির্দেশিকা "Connect your app to the Authentication emulator" বিভাগে পাওয়া যাবে। আরও তথ্যের জন্য, Local Emulator Suite ভূমিকা দেখুন।

এবার চলুন ব্যবহারকারীদের প্রমাণীকরণের পদ্ধতি নিয়ে আলোচনা করা যাক।

ফায়ারবেস SDK আরম্ভ করুন

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

সুইফট

import FirebaseCore

অবজেক্টিভ-সি

@import FirebaseCore;

তারপর, application:didFinishLaunchingWithOptions: পদ্ধতিতে, FirebaseApp অবজেক্টটি আরম্ভ করুন:

সুইফট

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

অবজেক্টিভ-সি

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

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

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

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

সুইফট

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

অবজেক্টিভ-সি

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

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

সুইফট

Auth.auth().removeStateDidChangeListener(handle!)

অবজেক্টিভ-সি

[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];

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

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

সুইফট

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

অবজেক্টিভ-সি

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

বিদ্যমান ব্যবহারকারীদের সাইন ইন করুন

এমন একটি ফর্ম তৈরি করুন যা বিদ্যমান ব্যবহারকারীদের তাদের ইমেল ঠিকানা এবং পাসওয়ার্ড ব্যবহার করে সাইন ইন করার অনুমতি দেয়। যখন একজন ব্যবহারকারী ফর্মটি পূরণ করেন, তখন signIn পদ্ধতিটি কল করুন:

সুইফট

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

অবজেক্টিভ-সি

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

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

একজন ব্যবহারকারী সফলভাবে সাইন ইন করার পরে, আপনি ব্যবহারকারী সম্পর্কে তথ্য পেতে পারেন। উদাহরণস্বরূপ, আপনার প্রমাণীকরণ অবস্থায় শ্রোতা :

সুইফট

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 += " "
  }
  // ...
}

অবজেক্টিভ-সি

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;
  // ...
}

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

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