Firebase Authentication का इस्तेमाल करके, उपयोगकर्ताओं को अपने गेम में साइन इन करने की अनुमति दी जा सकती है. इसके लिए, साइन इन करने के एक या उससे ज़्यादा तरीकों का इस्तेमाल किया जा सकता है. जैसे, ईमेल पते और पासवर्ड से साइन इन करना. इसके अलावा, फ़ेडरेटेड आइडेंटिटी प्रोवाइडर का इस्तेमाल करके भी साइन इन किया जा सकता है. जैसे, Google से साइन इन करें और Facebook Login. इस ट्यूटोरियल में, Firebase Authentication का इस्तेमाल शुरू करने का तरीका बताया गया है. इसमें, गेम में ईमेल पते और पासवर्ड से साइन-इन करने की सुविधा जोड़ने का तरीका बताया गया है.
शुरू करने से पहले
Firebase Authentication का इस्तेमाल करने से पहले, आपको ये काम करने होंगे:
अपने यूनिटी प्रोजेक्ट को रजिस्टर करें और Firebase का इस्तेमाल करने के लिए इसे कॉन्फ़िगर करें.
अगर आपके Unity प्रोजेक्ट में पहले से ही Firebase का इस्तेमाल किया जा रहा है, तो यह Firebase के लिए पहले से ही रजिस्टर और कॉन्फ़िगर किया गया है.
अगर आपके पास Unity प्रोजेक्ट नहीं है, तो सैंपल ऐप्लिकेशन डाउनलोड करें.
अपने Unity प्रोजेक्ट में Firebase Unity SDK (खास तौर पर,
FirebaseAuth.unitypackage
) जोड़ें.
ध्यान दें कि Firebase को अपने यूनिटी प्रोजेक्ट में जोड़ने के लिए, आपको Firebase कंसोल और खुले हुए यूनिटी प्रोजेक्ट, दोनों में टास्क पूरे करने होंगे. उदाहरण के लिए, आपको कंसोल से 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;
}
अगले चरण
अन्य आइडेंटिटी प्रोवाइडर और पहचान ज़ाहिर किए बिना मेहमान के तौर पर इस्तेमाल किए जाने वाले खातों के लिए, सहायता जोड़ने का तरीका जानें: