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

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

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

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

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

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

Auth क्लास सभी एपीआई कॉल के लिए गेटवे है।
  1. प्रामाणिक और ऐप हेडर फ़ाइलें जोड़ें:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. अपने इनिशियलाइज़ेशन कोड में, एक firebase::App क्लास बनाएं।
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. अपने firebase::App के लिए firebase::auth::Auth वर्ग प्राप्त करें। App और Auth के बीच वन-टू-वन मैपिंग है।
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
  • कॉल Auth::SignInAnonymously
    firebase::Future<firebase::auth::AuthResult> result =
        auth->SignInAnonymously();
    
  • यदि आपके प्रोग्राम में एक अपडेट लूप है जो नियमित रूप से चलता है (जैसे प्रति सेकंड 30 या 60 बार), तो आप प्रति अपडेट एक बार परिणामों की जांच कर सकते हैं Auth::SignInAnonymouslyLastResult :
    firebase::Future<firebase::auth::AuthResult> result =
        auth->SignInAnonymouslyLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::AuthResult auth_result = *result.result();
        printf("Sign in succeeded for `%s`\n",
               auth_result.user.display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    या, यदि आपका प्रोग्राम ईवेंट संचालित है, तो आप पसंद कर सकते हैं Future पर कॉलबैक रजिस्टर करने के लिए।
  • अनाम खाते को स्थायी खाते में बदलें

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

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

      Google साइन-इन
      firebase::auth::Credential credential =
          firebase::auth::GoogleAuthProvider::GetCredential(google_id_token,
                                                            nullptr);
      
      6 Facebook लॉग इन
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      
      7 ईमेल-पासवर्ड साइन-इन
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
      
      8
    3. auth::Credential ऑब्जेक्ट को साइन-इन उपयोगकर्ता की LinkWithCredential विधि में पास करें:

      // Link the new credential to the currently active user.
      firebase::auth::User current_user = auth->current_user();
      firebase::Future<firebase::auth::AuthResult> result =
          current_user.LinkWithCredential(credential);
      

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

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

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

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

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

    अगले कदम

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