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

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

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

इस्तेमाल करने से पहले Firebase Authentication आपको ये काम करने होंगे:

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

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

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

  • Firebase Unity SDK टूल (खास तौर पर, FirebaseAuth.unitypackage) जोड़ें आपका Unity प्रोजेक्ट भी सही है.

ध्यान दें कि 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;
}

अगले चरण

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