गुमनाम रूप से फायरबेस के साथ प्रमाणित करें

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

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

  1. यदि आपने पहले से ऐसा नहीं किया है, तो आरंभ करें मार्गदर्शिका में दिए गए चरणों का पालन करें.

  2. अनाम साइन-इन सक्षम करें:

    • फायरबेस कंसोल के प्रमाणीकरण अनुभाग में, साइन इन विधि पृष्ठ खोलें।
    • साइन इन विधि पृष्ठ से, अनाम साइन-इन विधि को सक्षम करें और सहेजें पर क्लिक करें।

गुमनाम रूप से फायरबेस के साथ प्रमाणित करें

जब एक साइन-आउट उपयोगकर्ता एक ऐप सुविधा का उपयोग करता है जिसके लिए signInAnonymously() कॉल करके गुमनाम रूप से साइन इन करें:

try {
  final userCredential =
      await FirebaseAuth.instance.signInAnonymously();
  print("Signed in with temporary account.");
} on FirebaseAuthException catch (e) {
  switch (e.code) {
    case "operation-not-allowed":
      print("Anonymous auth hasn't been enabled for this project.");
      break;
    default:
      print("Unknown error.");
  }
}

अनाम खाते को स्थायी खाते में बदलें

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

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

  2. नए प्रमाणीकरण प्रदाता के लिए एक Credential ऑब्जेक्ट प्राप्त करें:

    // Google Sign-in
    final credential = GoogleAuthProvider.credential(idToken: idToken);
    
    // Email and password sign-in
    final credential =
        EmailAuthProvider.credential(email: emailAddress, password: password);
    
    // Etc.
    
  3. Credential ऑब्जेक्ट को साइन-इन उपयोगकर्ता के linkWithCredential() विधि में पास करें:

    try {
      final userCredential = await FirebaseAuth.instance.currentUser
          ?.linkWithCredential(credential);
    } on FirebaseAuthException catch (e) {
      switch (e.code) {
        case "provider-already-linked":
          print("The provider has already been linked to the user.");
          break;
        case "invalid-credential":
          print("The provider's credential is not valid.");
          break;
        case "credential-already-in-use":
          print("The account corresponding to the credential already exists, "
              "or is already linked to a Firebase User.");
          break;
        // See the API reference for the full list of error codes.
        default:
          print("Unknown error.");
      }
      ```
    

यदि linkWithCredential() पर कॉल सफल होती है, तो उपयोगकर्ता का नया खाता अनाम खाते के Firebase डेटा तक पहुंच सकता है।

अगले कदम

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

अपने ऐप्स में, आप User ऑब्जेक्ट से उपयोगकर्ता की मूल प्रोफ़ाइल जानकारी प्राप्त कर सकते हैं। उपयोगकर्ता प्रबंधित करें देखें।

अपने फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप auth चर से साइन-इन किए गए उपयोगकर्ता की अद्वितीय उपयोगकर्ता आईडी प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।

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

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

await FirebaseAuth.instance.signOut();