यूनिटी में फायरबेस प्रमाणीकरण के साथ आरंभ करें

आप ईमेल पते और पासवर्ड साइन-इन और Google साइन-इन और फेसबुक लॉगिन जैसे फ़ेडरेटेड पहचान प्रदाताओं सहित एक या अधिक साइन-इन विधियों का उपयोग करके उपयोगकर्ताओं को अपने गेम में साइन इन करने की अनुमति देने के लिए फ़ायरबेस प्रमाणीकरण का उपयोग कर सकते हैं। यह ट्यूटोरियल आपको अपने गेम में ईमेल पता और पासवर्ड साइन-इन जोड़ने का तरीका दिखाकर फायरबेस प्रमाणीकरण के साथ आरंभ कराता है।

शुरू करने से पहले

इससे पहले कि आप फायरबेस प्रमाणीकरण का उपयोग कर सकें, आपको यह करना होगा:

  • अपना यूनिटी प्रोजेक्ट पंजीकृत करें और इसे फायरबेस का उपयोग करने के लिए कॉन्फ़िगर करें।

    • यदि आपका यूनिटी प्रोजेक्ट पहले से ही फायरबेस का उपयोग करता है, तो यह पहले से ही फायरबेस के लिए पंजीकृत और कॉन्फ़िगर किया गया है।

    • यदि आपके पास यूनिटी प्रोजेक्ट नहीं है, तो आप एक नमूना ऐप डाउनलोड कर सकते हैं।

  • अपने यूनिटी प्रोजेक्ट में फायरबेस यूनिटी एसडीके (विशेष रूप से, FirebaseAuth.unitypackage ) जोड़ें।

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

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

एक ऐसा फॉर्म बनाएं जो नए उपयोगकर्ताओं को उनके ईमेल पते और पासवर्ड का उपयोग करके आपके गेम के साथ पंजीकरण करने की अनुमति दे। जब कोई उपयोगकर्ता फ़ॉर्म पूरा करता है, तो उपयोगकर्ता द्वारा प्रदान किए गए ईमेल पते और पासवर्ड को मान्य करें, फिर उन्हें 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;
}

अगले कदम

जानें कि अन्य पहचान प्रदाताओं और अनाम अतिथि खातों के लिए समर्थन कैसे जोड़ें: