আপনি Firebase Authentication ব্যবহার করে ব্যবহারকারীদের আপনার গেমে সাইন-ইন করার অনুমতি দিতে পারেন। এর মধ্যে ইমেল আইডি ও পাসওয়ার্ড দিয়ে সাইন-ইন করা এবং Google Sign-in ও Facebook Login-এর মতো ফেডারেটেড আইডেন্টিটি প্রদানকারী সহ এক বা একাধিক সাইন-ইন পদ্ধতি অন্তর্ভুক্ত। এই টিউটোরিয়াল আপনাকে Firebase Authentication-এর সাথে শুরু করতে সাহায্য করে, এটি আপনাকে দেখায় কীভাবে আপনার গেমে ইমেল আইডি ও পাসওয়ার্ড দিয়ে সাইন-ইন করার সুবিধা যোগ করতে হয়।
শুরু করার আগে
আপনি Firebase Authentication ব্যবহার করার আগে, আপনাকে এগুলি করতে হবে:
Firebase ব্যবহার করার জন্য আপনার Unity প্রোজেক্ট রেজিস্টার ও কনফিগার করুন।
আপনার Unity প্রোজেক্টে আগে থেকেই Firebase ব্যবহার করা হলে, এটি আগে থেকেই Firebase-এর জন্য রেজিস্টার ও কনফিগার করা আছে।
আপনার কাছে Unity প্রোজেক্ট না থাকলে, আপনি একটি স্যাম্পেল অ্যাপ ডাউনলোড করতে পারবেন।
আপনার Unity প্রোজেক্টে Firebase Unity SDK (বিশেষ করে,
FirebaseAuth.unitypackage) যোগ করুন।
মনে রাখবেন, আপনার Unity প্রোজেক্টে Firebase যোগ করার জন্য Firebase কনসোল এবং আপনার খোলা Unity প্রোজেক্ট, দুটি জায়গাতেই কাজ করতে হয় (যেমন, আপনি কনসোল থেকে Firebase কনফিগারেশন ফাইল ডাউনলোড করেন, তারপর সেগুলি আপনার Unity প্রোজেক্টে সরান)।
নতুন ব্যবহারকারীদের সাইন-আপ করা
এমন একটি ফর্ম তৈরি করুন যা নতুন ব্যবহারকারীদের তাদের ইমেল
আইডি এবং পাসওয়ার্ড ব্যবহার করে আপনার গেমে রেজিস্টার করতে দেয়। ব্যবহারকারী ফর্ম পূরণ করলে, তার দেওয়া ইমেল
আইডি ও পাসওয়ার্ড যাচাই করে, সেগুলি
CreateUserWithEmailAndPasswordAsync পদ্ধতিতে পাস করুন:
auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
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 = Firebase.Auth.FirebaseAuth.DefaultInstance;
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);
});
একটি অথেন্টিকেশন স্টেট পরিবর্তন ইভেন্ট হ্যান্ডলার সেট করুন এবং ব্যবহারকারীর ডেটা পান
সাইন-ইন ও সাইন-আউট ইভেন্টের উত্তর দিতে, গ্লোবাল authentication অবজেক্টে একটি ইভেন্ট হ্যান্ডলার অ্যাটাচ করুন। ব্যবহারকারীর সাইন-ইন স্ট্যাটাস পরিবর্তন হলেই এই হ্যান্ডলারকে কল করা হয়। কারণ, হ্যান্ডলারটি শুধুমাত্র যাচাইকরণ অবজেক্ট সম্পূর্ণভাবে ইনিশিয়ালাইজ করা এবং কোনও নেটওয়ার্ক কল সম্পূর্ণ হওয়ার পরেই রান করে। তাই, সাইন-ইন করা ব্যবহারকারী সম্পর্কে তথ্য পাওয়ার জন্য এটিই সবচেয়ে ভাল জায়গা।
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) {
Debug.Log("Signed out " + user.UserId);
}
user = auth.CurrentUser;
if (signedIn) {
Debug.Log("Signed in " + user.UserId);
displayName = user.DisplayName ?? "";
emailAddress = user.Email ?? "";
photoUrl = user.PhotoUrl ?? "";
}
}
}
void OnDestroy() {
auth.StateChanged -= AuthStateChanged;
auth = null;
}
পরবর্তী ধাপ
অন্যান্য পরিচয় প্রদানকারী ও বেনামী অতিথি অ্যাকাউন্টের জন্য কীভাবে সহায়তা যোগ করতে হয় তা জানুন: