Unity में Firebase की पुष्टि करने की सुविधा का इस्तेमाल शुरू करें

Firebase से पुष्टि करने की सुविधा का इस्तेमाल करके, उपयोगकर्ताओं को साइन इन करने के एक या इससे ज़्यादा तरीकों का इस्तेमाल करके आपके गेम में साइन इन करने की अनुमति दी जा सकती है. इनमें, ईमेल पते और पासवर्ड साइन-इन के साथ-साथ Google साइन इन और Facebook लॉगिन जैसे फ़ेडरेटेड आइडेंटिटी प्रोवाइडर शामिल हैं. इस ट्यूटोरियल की मदद से, Firebase से पुष्टि करने की सुविधा का इस्तेमाल शुरू किया जा सकता है. इसमें गेम में ईमेल पता और पासवर्ड से साइन-इन करने का तरीका बताया गया है.

वेब कंटेनर इंस्टॉल करने से पहले

Firebase से पुष्टि करने की सुविधा का इस्तेमाल करने से पहले, आपको:

  • अपना Unity प्रोजेक्ट रजिस्टर करें और इसे Firebase का इस्तेमाल करने के लिए कॉन्फ़िगर करें.

    • अगर आपके यूनिटी प्रोजेक्ट में पहले से ही Firebase का इस्तेमाल हो रहा है, तो इसका मतलब है कि यह पहले से ही Firebase के लिए रजिस्टर और कॉन्फ़िगर हो चुका है.

    • अगर आपके पास Unity प्रोजेक्ट नहीं है, तो ऐप्लिकेशन का सैंपल डाउनलोड किया जा सकता है.

  • अपने Unity प्रोजेक्ट में, Firebase Unity SDK (खास तौर पर, FirebaseAuth.unitypackage) जोड़ें.

ध्यान दें कि Firebase को अपने यूनिटी प्रोजेक्ट में जोड़ने पर, Firebase कंसोल और आपके खुले हुए Unity प्रोजेक्ट, दोनों में टास्क शामिल होते हैं. उदाहरण के लिए, कंसोल से Firebase कॉन्फ़िगरेशन फ़ाइलें डाउनलोड करने के बाद, उन्हें अपने Unity प्रोजेक्ट में ले जाएं.

नए उपयोगकर्ताओं के लिए साइन अप करें

एक ऐसा फ़ॉर्म बनाएं जो नए उपयोगकर्ताओं को उनके ईमेल पते और पासवर्ड का इस्तेमाल करके आपके गेम के साथ रजिस्टर करने की सुविधा देता हो. जब कोई उपयोगकर्ता फ़ॉर्म भरता है, तो उसके दिए गए ईमेल पते और पासवर्ड की पुष्टि करें. इसके बाद, उन्हें 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 में, अनुमति वाले ऑब्जेक्ट के रेफ़रंस मिटाएं.

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

अगले चरण

पहचान देने वाली दूसरी कंपनियों और पहचान छिपाने वाले मेहमान खातों के लिए, सहायता जोड़ने का तरीका जानें: