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

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

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

  1. अपने C++ प्रोजेक्ट में Firebase जोड़ें.
  2. अगर आपने अब तक अपने ऐप्लिकेशन को Firebase प्रोजेक्ट से कनेक्ट नहीं किया है, तो Firebase कंसोल में जाकर ऐसा करें.
  3. बिना नाम के उपयोगकर्ता के तौर पर पुष्टि करने की सुविधा चालू करें:
    1. Firebase कंसोल में, Auth सेक्शन खोलें.
    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 Login
      firebase::auth::Credential credential =
          firebase::auth::FacebookAuthProvider::GetCredential(access_token);
      ईमेल और पासवर्ड की मदद से साइन-इन करना
      firebase::auth::Credential credential =
          firebase::auth::EmailAuthProvider::GetCredential(email, password);
    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 डेटा को ऐक्सेस कर सकता है.

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

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

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

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

    अगले चरण

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