ইউনিটিতে ফায়ারবেস প্রমাণীকরণের সাথে শুরু করুন

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

তুমি শুরু করার আগে

আপনি Firebase প্রমাণীকরণ ব্যবহার করার আগে, আপনাকে করতে হবে:

  • আপনার ইউনিটি প্রজেক্ট নিবন্ধন করুন এবং Firebase ব্যবহার করতে কনফিগার করুন।

    • আপনার ইউনিটি প্রোজেক্ট যদি আগে থেকেই Firebase ব্যবহার করে, তাহলে এটি ইতিমধ্যেই Firebase-এর জন্য নিবন্ধিত এবং কনফিগার করা আছে।

    • আপনার যদি ইউনিটি প্রজেক্ট না থাকে, আপনি একটি নমুনা অ্যাপ ডাউনলোড করতে পারেন।

  • আপনার ইউনিটি প্রোজেক্টে Firebase ইউনিটি SDK (বিশেষ করে, FirebaseAuth.unitypackage ) যোগ করুন।

মনে রাখবেন যে আপনার ইউনিটি প্রোজেক্টে ফায়ারবেস যোগ করার জন্য ফায়ারবেস কনসোল এবং আপনার ওপেন ইউনিটি প্রোজেক্ট উভয়েরই কাজ জড়িত থাকে (উদাহরণস্বরূপ, আপনি কনসোল থেকে Firebase কনফিগার ফাইলগুলি ডাউনলোড করেন, তারপর সেগুলিকে আপনার ইউনিটি প্রোজেক্টে নিয়ে যান)।

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

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

auth.CreateUserWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("CreateUserWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  // Firebase user has been created.
  Firebase.Auth.AuthResult result = task.Result;
  Debug.LogFormat("Firebase user created successfully: {0} ({1})",
      result.User.DisplayName, result.User.UserId);
});

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

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

auth.SignInWithEmailAndPasswordAsync(email, password).ContinueWith(task => {
  if (task.IsCanceled) {
    Debug.LogError("SignInWithEmailAndPasswordAsync was canceled.");
    return;
  }
  if (task.IsFaulted) {
    Debug.LogError("SignInWithEmailAndPasswordAsync encountered an error: " + task.Exception);
    return;
  }

  Firebase.Auth.AuthResult result = task.Result;
  Debug.LogFormat("User signed in successfully: {0} ({1})",
      result.User.DisplayName, result.User.UserId);
});

একটি প্রমাণীকরণ অবস্থা পরিবর্তন ইভেন্ট হ্যান্ডলার সেট করুন এবং ব্যবহারকারীর ডেটা পান

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

FirebaseAuth অবজেক্টের StateChanged ক্ষেত্র ব্যবহার করে ইভেন্ট হ্যান্ডলার নিবন্ধন করুন। একজন ব্যবহারকারী সফলভাবে সাইন ইন করলে, আপনি ইভেন্ট হ্যান্ডলারে ব্যবহারকারী সম্পর্কে তথ্য পেতে পারেন।

অবশেষে, যখন এই বস্তুটিকে Destroy কল করা হবে, তখন এটি স্বয়ংক্রিয়ভাবে OnDestroy কল করবে। OnDestroy এ Auth অবজেক্টের রেফারেন্সগুলি পরিষ্কার করুন।

void InitializeFirebase() {
  auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
  auth.StateChanged += AuthStateChanged;
  AuthStateChanged(this, null);
}

void AuthStateChanged(object sender, System.EventArgs eventArgs) {
  if (auth.CurrentUser != user) {
    bool signedIn = user != auth.CurrentUser && auth.CurrentUser != null
        && auth.CurrentUser.IsValid();
    if (!signedIn && user != null) {
      DebugLog("Signed out " + user.UserId);
    }
    user = auth.CurrentUser;
    if (signedIn) {
      DebugLog("Signed in " + user.UserId);
      displayName = user.DisplayName ?? "";
      emailAddress = user.Email ?? "";
      photoUrl = user.PhotoUrl ?? "";
    }
  }
}

void OnDestroy() {
  auth.StateChanged -= AuthStateChanged;
  auth = null;
}

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

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