यूनिटी का उपयोग करके पासवर्ड-आधारित खातों का उपयोग करके फायरबेस से प्रमाणित करें

आप अपने उपयोगकर्ताओं को उनके ईमेल पते और पासवर्ड का उपयोग करके फायरबेस से प्रमाणित करने और अपने ऐप के पासवर्ड-आधारित खातों को प्रबंधित करने के लिए फायरबेस प्रमाणीकरण का उपयोग कर सकते हैं।

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

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

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

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

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

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

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

Firebase.Auth.FirebaseAuth वर्ग तक पहुंचें

FirebaseAuth क्लास सभी API कॉल के लिए प्रवेश द्वार है। इसे FirebaseAuth.DefaultInstance के माध्यम से एक्सेस किया जा सकता है।
Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;

एक पासवर्ड-आधारित खाता बनाएं

पासवर्ड के साथ एक नया उपयोगकर्ता खाता बनाने के लिए, अपने ऐप के साइन-इन कोड में निम्नलिखित चरणों को पूरा करें:

  1. जब कोई नया उपयोगकर्ता आपके ऐप के साइन-अप फॉर्म का उपयोग करके साइन अप करता है, तो आपके ऐप के लिए आवश्यक किसी भी नए खाता सत्यापन चरण को पूरा करें, जैसे कि यह सत्यापित करना कि नए खाते का पासवर्ड सही ढंग से टाइप किया गया था और आपकी जटिलता आवश्यकताओं को पूरा करता है।
  2. नए उपयोगकर्ता का ईमेल पता और पासवर्ड FirebaseAuth.CreateUserWithEmailAndPassword पर भेजकर एक नया खाता बनाएं:
    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);
    });
    

किसी उपयोगकर्ता को ईमेल पते और पासवर्ड से साइन इन करें

किसी उपयोगकर्ता को पासवर्ड के साथ साइन इन करने के चरण नया खाता बनाने के चरणों के समान हैं। अपने ऐप के साइन-इन फ़ंक्शन में, निम्नलिखित कार्य करें:

  1. जब कोई उपयोगकर्ता आपके ऐप में साइन इन करता है, तो उपयोगकर्ता का ईमेल पता और पासवर्ड FirebaseAuth.SignInWithEmailAndPassword पर भेजें:
    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);
    });
    
  2. आप क्रेडेंशियल भी बना सकते हैं और अन्य वर्कफ़्लो की तरह साइन इन कर सकते हैं:
    Firebase.Auth.Credential credential =
        Firebase.Auth.EmailAuthProvider.GetCredential(email, password);
    auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => {
      if (task.IsCanceled) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled.");
        return;
      }
      if (task.IsFaulted) {
        Debug.LogError("SignInAndRetrieveDataWithCredentialAsync 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);
    });
    

अनुशंसित: ईमेल गणना सुरक्षा सक्षम करें

कुछ फायरबेस प्रमाणीकरण विधियां जो ईमेल पते को पैरामीटर के रूप में लेती हैं, विशिष्ट त्रुटियां उत्पन्न करती हैं यदि ईमेल पता अपंजीकृत है जब इसे पंजीकृत किया जाना चाहिए (उदाहरण के लिए, ईमेल पते और पासवर्ड के साथ साइन इन करते समय), या तब पंजीकृत किया जाता है जब इसका उपयोग नहीं किया जाना चाहिए (उदाहरण के लिए, उपयोगकर्ता का ईमेल पता बदलते समय)। हालाँकि यह उपयोगकर्ताओं को विशिष्ट उपाय सुझाने में सहायक हो सकता है, लेकिन दुर्भावनापूर्ण अभिनेताओं द्वारा आपके उपयोगकर्ताओं द्वारा पंजीकृत ईमेल पते की खोज करने के लिए इसका दुरुपयोग भी किया जा सकता है।

इस जोखिम को कम करने के लिए, हम अनुशंसा करते हैं कि आप Google क्लाउड gcloud टूल का उपयोग करके अपने प्रोजेक्ट के लिए ईमेल गणना सुरक्षा सक्षम करें । ध्यान दें कि इस सुविधा को सक्षम करने से फायरबेस प्रमाणीकरण का त्रुटि रिपोर्टिंग व्यवहार बदल जाता है: सुनिश्चित करें कि आपका ऐप अधिक विशिष्ट त्रुटियों पर भरोसा नहीं करता है।

अगले कदम

किसी उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल्स से लिंक किया जाता है - यानी, उपयोगकर्ता नाम और पासवर्ड, फोन नंबर, या ऑथ प्रदाता जानकारी - जिस उपयोगकर्ता के साथ साइन इन किया जाता है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट के प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे भी साइन इन करता हो।

  • अपने ऐप्स में, आप उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी Firebase.Auth.FirebaseUser ऑब्जेक्ट से प्राप्त कर सकते हैं:

    Firebase.Auth.FirebaseUser user = auth.CurrentUser;
    if (user != null) {
      string name = user.DisplayName;
      string email = user.Email;
      System.Uri photo_url = user.PhotoUrl;
      // The user's Id, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server, if you
      // have one; use User.TokenAsync() instead.
      string uid = user.UserId;
    }
    
  • अपने फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप साइन-इन किए गए उपयोगकर्ता की अद्वितीय उपयोगकर्ता आईडी को auth वेरिएबल से प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।

आप किसी मौजूदा उपयोगकर्ता खाते से प्रमाणीकरण प्रदाता क्रेडेंशियल्स को लिंक करके उपयोगकर्ताओं को एकाधिक प्रमाणीकरण प्रदाताओं का उपयोग करके अपने ऐप में साइन इन करने की अनुमति दे सकते हैं।

किसी उपयोगकर्ता को साइन आउट करने के लिए, SignOut() पर कॉल करें:

auth.SignOut();