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

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

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

  1. अपने जावास्क्रिप्ट प्रोजेक्ट में फायरबेस जोड़ें
  2. यदि आपने अभी तक अपने ऐप को अपने फायरबेस प्रोजेक्ट से कनेक्ट नहीं किया है, तो फायरबेस कंसोल से ऐसा करें।
  3. अनाम प्रमाणीकरण सक्षम करें:
    1. फायरबेस कंसोल में, ऑथ सेक्शन खोलें।
    2. साइन-इन विधियाँ पृष्ठ पर, अनाम साइन-इन विधि सक्षम करें।
    3. वैकल्पिक : यदि आपने अपने प्रोजेक्ट को आइडेंटिटी प्लेटफ़ॉर्म के साथ फायरबेस प्रमाणीकरण में अपग्रेड किया है, तो आप स्वचालित क्लीन-अप सक्षम कर सकते हैं। जब आप इस सेटिंग को सक्षम करते हैं, तो 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 दिन बाद मौजूदा अनाम खाते स्वचालित विलोपन के लिए पात्र होंगे।
  • यदि आप स्वचालित सफ़ाई बंद कर देते हैं, तो हटाए जाने के लिए निर्धारित कोई भी अनाम खाता हटाए जाने के लिए निर्धारित रहेगा।
  • यदि आप किसी अनाम खाते को किसी साइन-इन विधि से लिंक करके "अपग्रेड" करते हैं, तो खाता स्वचालित रूप से हटाया नहीं जाएगा।

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

अगले कदम

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