JavaScript का इस्तेमाल करके, Firebase से पुष्टि करें

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

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

  1. Firebase को अपने JavaScript प्रोजेक्ट में जोड़ें.
  2. अगर आपने अभी तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल से ऐसा करें.
  3. पहचान छिपाकर पुष्टि करने की सुविधा चालू करें:
    1. Firebase कंसोल में, पुष्टि करें सेक्शन खोलें.
    2. साइन-इन करने के तरीके पेज पर, साइन-इन करने के अनजान तरीके को चालू करें.
    3. ज़रूरी नहीं: अगर आपने अपने प्रोजेक्ट को पहचान प्लैटफ़ॉर्म की मदद से Firebase से पुष्टि करने पर अपग्रेड किया है, तो अपने-आप क्लीनअप की सुविधा चालू की जा सकती है. इस सेटिंग को चालू करने पर, पहचान छिपाकर 30 दिनों से ज़्यादा पुराने खाते अपने-आप मिट जाएंगे. अपने-आप क्लीनअप की सुविधा चालू करने वाले प्रोजेक्ट में, पहचान छिपाकर पुष्टि करने की सुविधा को इस्तेमाल करने की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा. अपने-आप क्लीनअप करने की सुविधा देखें.

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

जब कोई साइन आउट किया हुआ उपयोगकर्ता, ऐप्लिकेशन की किसी ऐसी सुविधा का इस्तेमाल करता है जिसके लिए Firebase की मदद से पुष्टि करना ज़रूरी है, तो यह तरीका अपनाकर उपयोगकर्ता की पहचान छिपाकर साइन इन करें:

  1. signInAnonymously तरीके को कॉल करें:

    Web

    import { getAuth, signInAnonymously } from "firebase/auth";
    
    const auth = getAuth();
    signInAnonymously(auth)
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        const errorCode = error.code;
        const errorMessage = error.message;
        // ...
      });

    Web

    firebase.auth().signInAnonymously()
      .then(() => {
        // Signed in..
      })
      .catch((error) => {
        var errorCode = error.code;
        var errorMessage = error.message;
        // ...
      });
    यहां पर गड़बड़ियों का पता लगाकर उन्हें ठीक भी किया जा सकता है. गड़बड़ी कोड की सूची के लिए, आधिकारिक रेफ़रंस दस्तावेज़ पर एक नज़र डालें.
  2. अगर signInAnonymously तरीका बिना किसी गड़बड़ी के पूरा हो जाता है, तो onAuthStateChanged में रजिस्टर किया गया ऑब्ज़र्वर ट्रिगर होगा और आपको User ऑब्जेक्ट से, पहचान छिपाने वाले उपयोगकर्ता के खाते का डेटा मिल सकता है:

    Web

    import { getAuth, onAuthStateChanged } from "firebase/auth";
    
    const auth = getAuth();
    onAuthStateChanged(auth, (user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/auth.user
        const uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

    Web

    firebase.auth().onAuthStateChanged((user) => {
      if (user) {
        // User is signed in, see docs for a list of available properties
        // https://firebase.google.com/docs/reference/js/v8/firebase.User
        var uid = user.uid;
        // ...
      } else {
        // User is signed out
        // ...
      }
    });

पहचान छिपाने वाले खाते को स्थायी खाते में बदलना

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

  1. उपयोगकर्ता के साइन अप होने पर, पुष्टि करने की सेवा देने वाली कंपनी के लिए साइन-इन फ़्लो को पूरा करें. हालांकि, साइन इन करने के लिए, Auth.signInWith में से किसी एक तरीके को कॉल करना शामिल नहीं है. उदाहरण के लिए, उपयोगकर्ता का Google आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड पाएं.
  2. पुष्टि करने वाली नई कंपनी के लिए, AuthCredential पाएं:

    Google साइन-इन

    Web

    import { GoogleAuthProvider } from "firebase/auth";
    
    const credential = GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);

    Web

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    Facebook में लॉगिन करें

    Web

    import { FacebookAuthProvider } from "firebase/auth";
    
    const credential = FacebookAuthProvider.credential(
      response.authResponse.accessToken);

    Web

    var credential = firebase.auth.FacebookAuthProvider.credential(
      response.authResponse.accessToken);
    ईमेल-पासवर्ड से साइन-इन

    Web

    import { EmailAuthProvider } from "firebase/auth";
    
    const credential = EmailAuthProvider.credential(email, password);

    Web

    var credential = firebase.auth.EmailAuthProvider.credential(email, password);
  3. साइन इन करने वाले उपयोगकर्ता के link तरीके में, AuthCredential ऑब्जेक्ट पास करें:

    Web

    import { getAuth, linkWithCredential } from "firebase/auth";
    
    const auth = getAuth();
    linkWithCredential(auth.currentUser, credential)
      .then((usercred) => {
        const user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

    Web

    auth.currentUser.linkWithCredential(credential)
      .then((usercred) => {
        var user = usercred.user;
        console.log("Anonymous account successfully upgraded", user);
      }).catch((error) => {
        console.log("Error upgrading anonymous account", error);
      });

अगर link को कॉल किया जाता है, तो उपयोगकर्ता का नया खाता, बिना पहचान वाले खाते के Firebase डेटा को ऐक्सेस कर सकता है.

अपने-आप क्लीनअप की सुविधा

अगर आपने अपने प्रोजेक्ट को पहचान प्लैटफ़ॉर्म की मदद से Firebase से पुष्टि करने की सुविधा पर अपग्रेड किया है, तो आपके पास 'Firebase कंसोल' में, डेटा अपने-आप हटाने की सुविधा चालू करने का विकल्प है. इस सुविधा को चालू करने पर, Firebase को यह अनुमति मिल जाती है कि वह 30 दिनों से ज़्यादा पुराने खातों को अपने-आप मिटा सके. जिन प्रोजेक्ट में अपने-आप क्लीनअप की सुविधा चालू होती है उनमें, पहचान छिपाकर पुष्टि करने की सुविधा को इस्तेमाल की सीमाओं या बिलिंग कोटा में नहीं गिना जाएगा.

  • अपने-आप क्लीनअप की सुविधा चालू करने के बाद, बनाया गया कोई भी पहचान छिपाने वाला खाता, खाता बनने के 30 दिनों बाद अपने-आप मिट सकता है.
  • अपने-आप क्लीनअप की सुविधा चालू करने के 30 दिन बाद, मौजूदा पहचान छिपाने वाले खातों को अपने-आप मिटाया जा सकता है.
  • अगर आपने अपने-आप क्लीनअप की सुविधा बंद की है, तो पहचान ज़ाहिर किए बिना मिटाए जाने के लिए शेड्यूल किए गए सभी खाते मिटने के लिए शेड्यूल ही रहेंगे.
  • अगर किसी अनजान खाते को साइन-इन करने के किसी दूसरे तरीके से लिंक करके, उसे "अपग्रेड" किया जाता है, तो वह खाता अपने-आप नहीं मिटेगा.

अगर आपको यह देखना है कि इस सुविधा को चालू करने से कितने उपयोगकर्ताओं पर इसका असर पड़ेगा और आपने अपने प्रोजेक्ट को पहचान प्लैटफ़ॉर्म की मदद से Firebase से पुष्टि करने की सुविधा पर अपग्रेड कर लिया है, तो Cloud Logging में, is_anon के हिसाब से फ़िल्टर करें.

अगले चरण

अब उपयोगकर्ता Firebase की मदद से पुष्टि कर सकते हैं. इसलिए, Firebase के नियमों का इस्तेमाल करके, अपने Firebase डेटाबेस में उनके डेटा के ऐक्सेस को कंट्रोल किया जा सकता है.