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

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

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

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

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

जब साइन-आउट किया गया उपयोगकर्ता ऐप सुविधा का उपयोग करता है जिसके लिए फायरबेस के साथ प्रमाणीकरण की आवश्यकता होती है, तो निम्न चरणों को पूरा करके उपयोगकर्ता को गुमनाम रूप से साइन इन करें:

  1. signInAnonymously मेथड को कॉल करें:

    Web modular API

    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 namespaced API

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

    Web modular API

    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 namespaced API

    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 ID टोकन, Facebook एक्सेस टोकन, या ईमेल पता और पासवर्ड प्राप्त करें।
  2. नए प्रमाणीकरण प्रदाता के लिए AuthCredential प्राप्त करें:

    गूगल साइन-इन

    Web modular API

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

    Web namespaced API

    var credential = firebase.auth.GoogleAuthProvider.credential(
      googleUser.getAuthResponse().id_token);
    फेसबुक लॉग इन

    Web modular API

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

    Web namespaced API

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

    Web modular API

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

    Web namespaced API

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

    Web modular API

    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 namespaced API

    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 के लिए कॉल सफल हो जाती है, तो उपयोगकर्ता का नया खाता अज्ञात खाते के फायरबेस डेटा तक पहुंच सकता है।

स्वचालित सफाई

यदि आपने अपने प्रोजेक्ट को आइडेंटिटी प्लेटफॉर्म के साथ फायरबेस ऑथेंटिकेशन में अपग्रेड किया है, तो आप फायरबेस कंसोल में स्वचालित क्लीन-अप को सक्षम कर सकते हैं। जब आप इस सुविधा को सक्षम करते हैं तो आप अनुमति देते हैं, फायरबेस 30 दिनों से पुराने अज्ञात खातों को स्वचालित रूप से हटाने के लिए। स्वचालित क्लीन-अप सक्षम वाली परियोजनाओं में, अज्ञात प्रमाणीकरण उपयोग सीमा या बिलिंग कोटा की ओर नहीं गिना जाएगा।

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

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

अगले कदम

अब जबकि उपयोगकर्ता Firebase के साथ प्रमाणित कर सकते हैं, आप Firebase नियमों का उपयोग करके अपने Firebase डेटाबेस में डेटा तक उनकी पहुंच को नियंत्रित कर सकते हैं।