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

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

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

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

Firebase से गुमनाम तरीके से पुष्टि करना

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

Auth क्लास, सभी एपीआई कॉल के लिए गेटवे है.
  1. Auth और App हेडर फ़ाइलें जोड़ें:
    #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 आईडी टोकन, Facebook ऐक्सेस टोकन या ईमेल पता और पासवर्ड हासिल करें.
    2. पुष्टि करने वाले नए व्यक्ति के लिए, auth::Credential हासिल करें:

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

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

    अपने-आप साफ़-सफ़ाई करने की सुविधा

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

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

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

    अगले चरण

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