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

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

আপনার অ্যাপকে ফায়ারবেসের সাথে সংযুক্ত করুন

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

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

ফায়ারবেস ডিপেন্ডেন্সিগুলো ইনস্টল ও পরিচালনা করতে সুইফট প্যাকেজ ম্যানেজার ব্যবহার করুন।

  1. Xcode-এ আপনার অ্যাপ প্রজেক্টটি খুলে, File > Add Packages- এ যান।
  2. অনুরোধ করা হলে, Firebase Apple প্ল্যাটফর্ম SDK রিপোজিটরিটি যোগ করুন:
  3.   https://github.com/firebase/firebase-ios-sdk.git
  4. Firebase Authentication লাইব্রেরিটি নির্বাচন করুন।
  5. আপনার টার্গেটের বিল্ড সেটিংসের ' Other Linker Flags' সেকশনে -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 পরিচিতি দেখুন।

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

ফায়ারবেস এসডিকে শুরু করুন

আপনার অ্যাপ ডেলিগেটে, প্রথমে ফায়ারবেস এসডিকে ইম্পোর্ট করুন:

সুইফট

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

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

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