पहचान छिपाकर Firebase की मदद से पुष्टि करें

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

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

  1. अगर आपने अब तक ऐसा नहीं किया है, तो शुरू करें गाइड में दिया गया तरीका अपनाएं.

  2. पहचान छिपाकर साइन इन करने की सुविधा चालू करें:

    1. Firebase console में, Security > Authentication पर जाएं.

    2. साइन-इन का तरीका टैब में, Anonymous साइन-इन प्रोवाइडर चालू करें.

    3. सेव करें पर क्लिक करें.

Firebase की मदद से, बिना पहचान बताए पुष्टि करना

जब कोई ऐसा उपयोगकर्ता किसी ऐप्लिकेशन की ऐसी सुविधा का इस्तेमाल करता है जिसके लिए Firebase से पुष्टि करना ज़रूरी है, तो 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 आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड पाएं.

  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. साइन-इन करने वाले उपयोगकर्ता के linkWithCredential() तरीके को Credential ऑब्जेक्ट पास करें:

    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 डेटा को ऐक्सेस कर सकता है.

अगले चरण

जब कोई उपयोगकर्ता नया खाता बनाता है, तो यह खाता आपके Firebase प्रोजेक्ट के हिस्से के तौर पर सेव किया जाता है. इसका इस्तेमाल, आपके प्रोजेक्ट के हर ऐप्लिकेशन में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है. इससे कोई फ़र्क़ नहीं पड़ता कि उपयोगकर्ता ने साइन-इन करने के लिए किस तरीके का इस्तेमाल किया है.

अपने ऐप्लिकेशन में, User ऑब्जेक्ट से उपयोगकर्ता की प्रोफ़ाइल की बुनियादी जानकारी पाई जा सकती है. उपयोगकर्ताओं को मैनेज करना लेख पढ़ें.

Firebase Realtime Database और Cloud Storage की सुरक्षा से जुड़े नियमों में, auth वैरिएबल से साइन इन किए हुए उपयोगकर्ता का यूनीक उपयोगकर्ता आईडी पाया जा सकता है. इसका इस्तेमाल यह कंट्रोल करने के लिए किया जा सकता है कि कोई उपयोगकर्ता किस डेटा को ऐक्सेस कर सकता है.

उपयोगकर्ताओं को अपने ऐप्लिकेशन में साइन इन करने के लिए, एक से ज़्यादा पुष्टि करने वाली कंपनियों का इस्तेमाल करने की अनुमति दी जा सकती है. इसके लिए, किसी मौजूदा उपयोगकर्ता खाते से पुष्टि करने वाली कंपनी के क्रेडेंशियल लिंक करें.

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

await FirebaseAuth.instance.signOut();