Google is committed to advancing racial equity for Black communities. See how.
इस पेज का अनुवाद Cloud Translation API से किया गया है.
Switch to English

C ++ में फायरबेस प्रमाणीकरण के साथ आरंभ करें

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

अपने C ++ प्रोजेक्ट को Firebase से कनेक्ट करें

इससे पहले कि आप Firebase प्रमाणीकरण का उपयोग कर सकें, आपको निम्न करने की आवश्यकता है:

  • अपने C ++ प्रोजेक्ट को रजिस्टर करें और Firebase का उपयोग करने के लिए इसे कॉन्फ़िगर करें।

    यदि आपका C ++ प्रोजेक्ट पहले से ही Firebase का उपयोग करता है, तो यह पहले से ही पंजीकृत है और Firebase के लिए कॉन्फ़िगर किया गया है।

  • अपने प्रोजेक्ट-लेवल build.gradle फ़ाइल में, अपने buildscript और allprojects दोनों वर्गों में Google के buildscript रिपॉजिटरी को शामिल करना सुनिश्चित करें।

  • अपने C ++ प्रोजेक्ट में Firebase C ++ SDK जोड़ें।

ध्यान दें कि आपके C ++ प्रोजेक्ट में Firebase को जोड़ने से Firebase कंसोल और आपके खुले C ++ प्रोजेक्ट दोनों में कार्य शामिल हैं (उदाहरण के लिए, आप कंसोल से फायरबेस कॉन्फ़िगरेशन फ़ाइलों को डाउनलोड करते हैं, फिर उन्हें अपने C ++ प्रोजेक्ट में स्थानांतरित करें)।

नए उपयोगकर्ताओं को साइन अप करें

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

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPassword(email, password);

आप खाता निर्माण कार्रवाई की स्थिति CreateUserWithEmailAndPasswordLastResult भविष्य की वस्तु पर कॉलबैक दर्ज करके या, यदि आप किसी प्रकार का आवधिक अद्यतन लूप के साथ गेम लिख रहे हैं, तो अपडेट लूप में स्थिति को देखकर कर सकते हैं।

उदाहरण के लिए, भविष्य का उपयोग करना:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();

// The lambda has the same signature as the callback function.
result.OnCompletion(
    [](const firebase::Future<firebase::auth::User*>& result,
       void* user_data) {
      // `user_data` is the same as &my_program_context, below.
      // Note that we can't capture this value in the [] because std::function
      // is not supported by our minimum compiler spec (which is pre C++11).
      MyProgramContext* program_context =
          static_cast<MyProgramContext*>(user_data);

      // Process create user result...
      (void)program_context;
    },
    &my_program_context);

या, मतदान का उपयोग करने के लिए, अपने गेम के अपडेट लूप में निम्न उदाहरण की तरह कुछ करें:

firebase::Future<firebase::auth::User*> result =
    auth->CreateUserWithEmailAndPasswordLastResult();
if (result.status() == firebase::kFutureStatusComplete) {
  if (result.error() == firebase::auth::kAuthErrorNone) {
    firebase::auth::User* user = *result.result();
    printf("Create user succeeded for email %s\n", user->email().c_str());
  } else {
    printf("Created user failed with error '%s'\n", result.error_message());
  }
}

मौजूदा उपयोगकर्ताओं में साइन इन करें

एक प्रपत्र बनाएँ जो मौजूदा उपयोगकर्ताओं को उनके ईमेल पते और पासवर्ड का उपयोग करने में प्रवेश करने की अनुमति देता है। जब कोई उपयोगकर्ता फ़ॉर्म पूरा करता है, तो SignInWithEmailAndPassword विधि को कॉल करें:

firebase::Future<firebase::auth::User*> result =
    auth->SignInWithEmailAndPassword(email, password);

साइन-इन ऑपरेशन का परिणाम उसी तरह प्राप्त करें जैसे आपको साइन-अप परिणाम मिला।

एक प्रमाणीकरण राज्य श्रोता सेट करें और खाता डेटा प्राप्त करें

साइन-इन और साइन-आउट घटनाओं का जवाब देने के लिए, एक श्रोता को वैश्विक प्रमाणीकरण ऑब्जेक्ट में संलग्न करें। जब भी उपयोगकर्ता का साइन-इन राज्य बदलता है, तो इस श्रोता को बुलाया जाता है। क्योंकि श्रोता प्रमाणीकरण ऑब्जेक्ट के पूरी तरह से आरंभ होने के बाद ही चलता है और किसी भी नेटवर्क कॉल के पूरा होने के बाद, यह हस्ताक्षरित उपयोगकर्ता के बारे में जानकारी प्राप्त करने के लिए सबसे अच्छी जगह है।

firebase::auth::AuthStateListener को लागू करके श्रोता बनाएँ firebase::auth::AuthStateListener सार वर्ग। उदाहरण के लिए, एक श्रोता बनाने के लिए जो उपयोगकर्ता के बारे में जानकारी प्राप्त करता है जब उपयोगकर्ता सफलतापूर्वक साइन इन करता है:

class MyAuthStateListener : public firebase::auth::AuthStateListener {
 public:
  void OnAuthStateChanged(firebase::auth::Auth* auth) override {
    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      // User is signed in
      printf("OnAuthStateChanged: signed_in %s\n", user->uid().c_str());
      const std::string displayName = user->DisplayName();
      const std::string emailAddress = user->Email();
      const std::string photoUrl = user->PhotoUrl();
    } else {
      // User is signed out
      printf("OnAuthStateChanged: signed_out\n");
    }
    // ...
  }
};

AddAuthStateListener साथ श्रोता को संलग्न करें firebase::auth::Auth वस्तु का AddAuthStateListener विधि:

MyAuthStateListener state_change_listener;
auth->AddAuthStateListener(&state_change_listener);

अगला कदम

अन्य पहचान प्रदाताओं और अनाम अतिथि खातों के लिए समर्थन जोड़ना सीखें: