शुरू करने से पहले
- अपने C++ प्रोजेक्ट में Firebase जोड़ें ।
- अपने प्रोजेक्ट की सर्वर कुंजियाँ प्राप्त करें:
- अपने प्रोजेक्ट की सेटिंग में सर्विस अकाउंट पेज पर जाएं।
- सर्विस अकाउंट पेज के फायरबेस एडमिन एसडीके सेक्शन के नीचे नई निजी कुंजी जेनरेट करें पर क्लिक करें।
- नए सेवा खाते की सार्वजनिक/निजी कुंजी जोड़ी आपके कंप्यूटर पर स्वचालित रूप से सहेजी जाती है। इस फ़ाइल को अपने प्रमाणीकरण सर्वर पर कॉपी करें।
फायरबेस के साथ प्रमाणित करें
Auth
क्लास सभी एपीआई कॉल के लिए गेटवे है।- प्रामाणिक और ऐप हेडर फ़ाइलें जोड़ें:
#include "firebase/app.h" #include "firebase/auth.h"
- अपने इनिशियलाइज़ेशन कोड में, एक
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__)
- अपने
firebase::App
के लिएfirebase::auth::Auth
वर्ग प्राप्त करें।App
औरAuth
के बीच वन-टू-वन मैपिंग है।firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
Auth::SignInWithCustomToken
पर कॉल करें।- जब उपयोगकर्ता आपके ऐप में साइन इन करते हैं, तो अपने प्रमाणीकरण सर्वर पर उनके साइन-इन क्रेडेंशियल (उदाहरण के लिए, उनका उपयोगकर्ता नाम और पासवर्ड) भेजें। आपका सर्वर क्रेडेंशियल्स की जांच करता है और यदि वे मान्य हैं तो एक कस्टम टोकन देता है।
- अपने प्रमाणीकरण सर्वर से कस्टम टोकन प्राप्त करने के बाद, उपयोगकर्ता में साइन इन करने के लिए इसे
Auth::SignInWithCustomToken
पर पास करें:firebase::Future<firebase::auth::AuthResult> result = auth->SignInWithCustomToken(custom_token);
- यदि आपके प्रोग्राम में एक अपडेट लूप है जो नियमित रूप से चलता है (जैसे प्रति सेकंड 30 या 60 बार), तो आप प्रति अपडेट एक बार परिणामों की जांच कर सकते हैं
Auth::SignInWithCustomTokenLastResult
:firebase::Future<firebase::auth::AuthResult> result = auth->SignInWithCustomTokenLastResult(); 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 पर कॉलबैक रजिस्टर करने के लिए।
अगले कदम
उपयोगकर्ता द्वारा पहली बार साइन इन करने के बाद, एक नया उपयोगकर्ता खाता बनाया जाता है और क्रेडेंशियल से लिंक किया जाता है—अर्थात, उपयोगकर्ता नाम और पासवर्ड, फ़ोन नंबर, या प्रमाणीकरण प्रदाता जानकारी—जिसके साथ उपयोगकर्ता ने साइन इन किया है। यह नया खाता आपके फायरबेस प्रोजेक्ट के हिस्से के रूप में संग्रहीत है, और इसका उपयोग आपके प्रोजेक्ट में प्रत्येक ऐप में उपयोगकर्ता की पहचान करने के लिए किया जा सकता है, भले ही उपयोगकर्ता कैसे साइन इन करे।
अपने ऐप्स में, आप उपयोगकर्ता की बुनियादी प्रोफ़ाइल जानकारी
firebase::auth::User
ऑब्जेक्ट से प्राप्त कर सकते हैं:firebase::auth::User user = auth->current_user(); if (user.is_valid()) { std::string name = user.display_name(); std::string email = user.email(); std::string photo_url = user.photo_url(); // The user's ID, unique to the Firebase project. // Do NOT use this value to authenticate with your backend server, // if you have one. Use firebase::auth::User::Token() instead. std::string uid = user.uid(); }
अपने फायरबेस रीयलटाइम डेटाबेस और क्लाउड स्टोरेज सुरक्षा नियमों में, आप
auth
चर से साइन-इन किए गए उपयोगकर्ता की अद्वितीय उपयोगकर्ता आईडी प्राप्त कर सकते हैं, और इसका उपयोग यह नियंत्रित करने के लिए कर सकते हैं कि उपयोगकर्ता किस डेटा तक पहुंच सकता है।
किसी उपयोगकर्ता को साइन आउट करने के लिए, SignOut()
पर कॉल करें:
auth->SignOut();