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

Firebase C++ SDK टूल की मदद से, अपने C++ गेम को बेहतर बनाएं. ये टूल, Firebase SDK टूल के साथ C++ इंटरफ़ेस उपलब्ध कराते हैं.

अपने C++ कोड से Firebase को पूरी तरह से ऐक्सेस करें. इसके लिए, आपको प्लैटफ़ॉर्म के लिए कोई नेटिव कोड लिखने की ज़रूरत नहीं है. Firebase SDK टूल, भाषा के हिसाब से कई तरह के идиओम का अनुवाद भी करता है. Firebase इन भाषाओं का इस्तेमाल करता है. ये भाषाएं, C++ डेवलपर के लिए ज़्यादा जाना-पहचाना इंटरफ़ेस होती हैं.

Firebase की मदद से अपने गेम को बेहतर बनाने के बारे में ज़्यादा जानने के लिए, हमारे Firebase गेम पेज पर जाएं.

क्या आपने अपने C++ प्रोजेक्ट में पहले से ही Firebase जोड़ लिया है? पक्का करें कि आपने Firebase C++ SDK टूल का सबसे नया वर्शन इस्तेमाल किया हो.


ज़रूरी शर्तें

  • ये इंस्टॉल करें:

    • Xcode 13.3.1 या उसके बाद का वर्शन
    • CocoaPods 1.12.0 या उसके बाद का वर्शन
  • पक्का करें कि आपका प्रोजेक्ट, प्लैटफ़ॉर्म के इन वर्शन या इसके बाद के वर्शन को टारगेट करता हो:

    • iOS 13
    • tvOS 13
  • अपना ऐप्लिकेशन चलाने के लिए, कोई फ़िज़िकल डिवाइस सेट अप करें या सिम्युलेटर का इस्तेमाल करें.

  • अपने Google खाते का इस्तेमाल करके, Firebase में साइन इन करें.

दूसरा चरण: Firebase प्रोजेक्ट बनाना

C++ प्रोजेक्ट में Firebase जोड़ने से पहले, आपको C++ प्रोजेक्ट से कनेक्ट करने के लिए Firebase प्रोजेक्ट बनाना होगा. Firebase प्रोजेक्ट के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानकारी पर जाएं.

तीसरा चरण: Firebase के साथ अपना ऐप्लिकेशन रजिस्टर करना

अपने Apple ऐप्लिकेशन में Firebase का इस्तेमाल करने के लिए, आपको अपने ऐप्लिकेशन को अपने Firebase प्रोजेक्ट के साथ रजिस्टर करना होगा. अपने ऐप्लिकेशन को रजिस्टर करने को, अक्सर अपने प्रोजेक्ट में ऐप्लिकेशन को "जोड़ना" कहा जाता है.

  1. Firebase console पर जाएं.

  2. प्रोजेक्ट की खास जानकारी वाले पेज के बीच में, सेटअप वर्कफ़्लो को लॉन्च करने के लिए, iOS+ आइकॉन पर क्लिक करें.

    अगर आपने अपने Firebase प्रोजेक्ट में पहले से ही कोई ऐप्लिकेशन जोड़ लिया है, तो प्लैटफ़ॉर्म के विकल्प दिखाने के लिए, ऐप्लिकेशन जोड़ें पर क्लिक करें.

  3. बंडल आईडी फ़ील्ड में, अपने ऐप्लिकेशन का बंडल आईडी डालें.

  4. (ज़रूरी नहीं) ऐप्लिकेशन की अन्य जानकारी डालें: ऐप्लिकेशन का कोई दूसरा नाम और App Store आईडी.

  5. ऐप्लिकेशन रजिस्टर करें पर क्लिक करें.

चौथा चरण: Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ना

  1. Firebase के Apple प्लैटफ़ॉर्म की कॉन्फ़िगरेशन फ़ाइल पाने के लिए, GoogleService-Info.plist डाउनलोड करें पर क्लिक करें.

  2. अपने C++ प्रोजेक्ट को किसी आईडीई में खोलें. इसके बाद, अपनी कॉन्फ़िगरेशन फ़ाइल को अपने C++ प्रोजेक्ट के रूट में खींचें और छोड़ें.

  3. अगर आपसे कहा जाए, तो सभी टारगेट में कॉन्फ़िगरेशन फ़ाइल जोड़ने का विकल्प चुनें.

आपने Firebase कंसोल में सेट अप करने के टास्क पूरे कर लिए हैं. यहां दिए गए निर्देशों का पालन करके, Firebase C++ SDK टूल जोड़ें.

पांचवां चरण: Firebase C++ SDK टूल जोड़ना

इस सेक्शन में दिए गए चरणों में, Firebase C++ प्रोजेक्ट में काम करने वाले Firebase प्रॉडक्ट जोड़ने का तरीका बताया गया है.

  1. Firebase C++ SDK डाउनलोड करें. इसके बाद, SDK टूल को किसी सुविधाजनक जगह पर अनज़िप करें.

    Firebase C++ SDK टूल, किसी खास प्लैटफ़ॉर्म के लिए नहीं है. हालांकि, इसमें प्लैटफ़ॉर्म के हिसाब से लाइब्रेरी शामिल होती हैं.

  2. अनज़िप किए गए SDK टूल से Firebase पॉड जोड़ें.

    1. अगर आपके पास पहले से कोई Podfile नहीं है, तो एक बनाएं:

      cd your-app-directory
      pod init

    2. अपनी Podfile में, वे Firebase पॉड जोड़ें जिनका इस्तेमाल आपको अपने ऐप्लिकेशन में करना है.

      Analytics चालू है

      # Add the Firebase pod for Google Analytics
      pod 'FirebaseAnalytics'
      # Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'

      Analytics चालू नहीं है

      # Add the pods for the Firebase products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      pod 'FirebaseAuth'
      pod 'FirebaseDatabase'
    3. पॉड इंस्टॉल करें. इसके बाद, Xcode में .xcworkspace फ़ाइल खोलें.

      pod install
      open your-app.xcworkspace

  3. अनज़िप किए गए SDK टूल से Firebase फ़्रेमवर्क जोड़ें.

    आम तौर पर, इन फ़्रेमवर्क को जोड़ने का सबसे आसान तरीका यह है कि उन्हें Finder विंडो से खींचकर सीधे Xcode के Project Navigator पैनल में छोड़ें. यह पैनल, डिफ़ॉल्ट रूप से सबसे बाईं ओर होता है. इसके अलावा, Xcode के सबसे ऊपर बाईं ओर मौजूद फ़ाइल आइकॉन पर क्लिक करके भी इन फ़्रेमवर्क को जोड़ा जा सकता है.

    1. Firebase C++ फ़्रेमवर्क firebase.framework जोड़ें. Firebase के किसी भी प्रॉडक्ट का इस्तेमाल करने के लिए, इसे जोड़ना ज़रूरी है.

    2. आपको जिस Firebase प्रॉडक्ट का इस्तेमाल करना है उसके लिए फ़्रेमवर्क जोड़ें. उदाहरण के लिए, Firebase Authentication का इस्तेमाल करने के लिए, firebase_auth.framework जोड़ें.

  4. Firebase कंसोल में वापस जाकर, सेटअप वर्कफ़्लो में, आगे बढ़ें पर क्लिक करें.

  5. अगर आपने Analytics जोड़ा है, तो Firebase को पुष्टि भेजने के लिए अपना ऐप्लिकेशन चलाएं कि आपने Firebase को इंटिग्रेट कर लिया है. अगर ऐसा नहीं है, तो पुष्टि करने के इस चरण को छोड़ा जा सकता है.

    आपके डिवाइस के लॉग में, Firebase की पुष्टि की जानकारी दिखेगी. इससे पता चलेगा कि इंिशिएलाइज़ेशन की प्रोसेस पूरी हो गई है. अगर आपने अपने ऐप्लिकेशन को नेटवर्क ऐक्सेस वाले किसी एम्युलेटर पर चलाया है, तो Firebase कंसोल आपको सूचना देगा कि आपका ऐप्लिकेशन कनेक्ट हो गया है.

अब इसे इस्तेमाल किया जा सकता है आपका C++ ऐप्लिकेशन, Firebase प्रॉडक्ट का इस्तेमाल करने के लिए रजिस्टर और कॉन्फ़िगर किया गया हो.

उपलब्ध लाइब्रेरी

रेफ़रंस दस्तावेज़ में C++ Firebase लाइब्रेरी के बारे में ज़्यादा जानें. इसके अलावा, GitHub पर मौजूद हमारे ओपन-सोर्स SDK रिलीज़ में भी इस बारे में जानकारी मिल सकती है.

Apple के प्लैटफ़ॉर्म के लिए उपलब्ध लाइब्रेरी

ध्यान दें कि Android के लिए C++ लाइब्रेरी, इस सेटअप पेज के Android वर्शन पर दी गई हैं.

Firebase के हर प्रॉडक्ट की डिपेंडेंसी अलग-अलग होती हैं. अपनी Podfile और C++ प्रोजेक्ट में, अपनी पसंद के Firebase प्रॉडक्ट के लिए, सूची में दी गई सभी डिपेंडेंसी जोड़ना न भूलें.

ऐसा हो सकता है कि हर Firebase प्रॉडक्ट, Apple के चुनिंदा ओएस प्लैटफ़ॉर्म (iOS, tvOS वगैरह) पर ही काम करे. C++ और Firebase के बारे में ज़्यादा जानें में जाकर देखें कि हर लाइब्रेरी किन प्लैटफ़ॉर्म पर काम करती है.

Firebase प्रॉडक्ट फ़्रेमवर्क और पॉड
AdMob (ज़रूरी है) firebase.framework
firebase_admob.framework
(ज़रूरी है) firebase_analytics.framework

pod 'FirebaseAdMob', '11.4.2'
(ज़रूरी है) pod 'FirebaseAnalytics', '11.4.2'
Analytics (ज़रूरी है) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '11.4.2'
App Check (ज़रूरी है) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '11.4.2'
Authentication (ज़रूरी है) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '11.4.2'
Cloud Firestore (ज़रूरी है) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '11.4.2'
pod 'FirebaseAuth', '11.4.2'
Cloud Functions (ज़रूरी है) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '11.4.2'
Cloud Messaging (ज़रूरी है) firebase.framework
firebase_messaging.framework
(सुझाया गया) firebase_analytics.framework

pod 'FirebaseMessaging', '11.4.2'
(सुझाया गया) pod 'FirebaseAnalytics', '11.4.2'
Cloud Storage (ज़रूरी है) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '11.4.2'
Dynamic Links (ज़रूरी है) firebase.framework
firebase_dynamic_links.framework
(सुझाया गया) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '11.4.2'
(सुझाया गया) pod 'FirebaseAnalytics', '11.4.2'
Realtime Database (ज़रूरी है) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '11.4.2'
Remote Config (ज़रूरी है) firebase.framework
firebase_remote_config.framework
(सुझाया गया) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '11.4.2'
(सुझाया गया) pod 'FirebaseAnalytics', '11.4.2'

मोबाइल सेटअप के बारे में ज़्यादा जानकारी

मेथड स्विज़लिंग

iOS पर, कुछ ऐप्लिकेशन इवेंट (जैसे, यूआरएल खोलना और सूचनाएं पाना) के लिए, आपके ऐप्लिकेशन डेलीगेट को कुछ खास तरीके लागू करने की ज़रूरत होती है. उदाहरण के लिए, सूचना पाने के लिए, हो सकता है कि आपके ऐप्लिकेशन को application:didReceiveRemoteNotification: लागू करने के लिए, किसी दूसरे ऐप्लिकेशन को अनुमति देनी पड़े. हर iOS ऐप्लिकेशन का अपना ऐप्लिकेशन डेलीगेट होता है. इसलिए, Firebase मेथड स्विज़लिंग का इस्तेमाल करता है. इससे, एक मेथड को दूसरे से बदला जा सकता है. साथ ही, आपके लागू किए गए किसी भी हैंडलर के अलावा, अपने हैंडलर भी अटैच किए जा सकते हैं.

Dynamic Links और Cloud Messaging लाइब्रेरी को, तरीका स्विज़ल करने की सुविधा का इस्तेमाल करके, ऐप्लिकेशन डेलीगेट में हैंडलर अटैच करने की ज़रूरत है. अगर इनमें से किसी Firebase प्रॉडक्ट का इस्तेमाल किया जा रहा है, तो लोड होने के समय Firebase आपकी AppDelegate क्लास की पहचान करेगा और उस पर ज़रूरी तरीके स्विज़ल करेगा. साथ ही, आपके मौजूदा तरीके को लागू करने के लिए कॉलबैक को चेन करेगा.

डेस्कटॉप वर्कफ़्लो सेट अप करना (बीटा वर्शन)

गेम बनाते समय, इसे अक्सर डेस्कटॉप प्लैटफ़ॉर्म पर टेस्ट करना बहुत आसान होता है. इसके बाद, इसे डेवलपमेंट के बाद मोबाइल डिवाइसों पर डिप्लॉय और टेस्ट किया जाता है. इस वर्कफ़्लो के साथ काम करने के लिए, हम Firebase C++ SDK टूल का सबसेट उपलब्ध कराते हैं. यह सबसेट, Windows, macOS, Linux, और C++ एडिटर में काम करता है.

  1. डेस्कटॉप वर्कफ़्लो के लिए, आपको ये काम करने होंगे:

    1. CMake के लिए अपना C++ प्रोजेक्ट कॉन्फ़िगर करें.
    2. Firebase प्रोजेक्ट बनाना
    3. अपने ऐप्लिकेशन (iOS या Android) को Firebase के साथ रजिस्टर करना
    4. मोबाइल-प्लैटफ़ॉर्म के लिए Firebase कॉन्फ़िगरेशन फ़ाइल जोड़ना
  2. Firebase कॉन्फ़िगरेशन फ़ाइल का डेस्कटॉप वर्शन बनाएं:

    • अगर आपने Android google-services.json फ़ाइल जोड़ी है — ऐप्लिकेशन को चलाने पर, Firebase इस मोबाइल फ़ाइल का पता लगाता है. इसके बाद, डेस्कटॉप के लिए Firebase कॉन्फ़िगरेशन फ़ाइल (google-services-desktop.json) अपने-आप जनरेट होती है.

    • अगर आपने iOS GoogleService-Info.plist फ़ाइल जोड़ी है — ऐप्लिकेशन को चलाने से पहले, आपको इस मोबाइल फ़ाइल को डेस्कटॉप Firebase कॉन्फ़िगरेशन फ़ाइल में बदलना होगा. फ़ाइल को बदलने के लिए, GoogleService-Info.plist फ़ाइल की डायरेक्ट्री में जाकर यह कमांड चलाएं:

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

    इस डेस्कटॉप कॉन्फ़िगरेशन फ़ाइल में, C++ प्रोजेक्ट आईडी शामिल होता है. यह आईडी, Firebase कंसोल के सेटअप वर्कफ़्लो में डाला जाता है. कॉन्फ़िगरेशन फ़ाइलों के बारे में ज़्यादा जानने के लिए, Firebase प्रोजेक्ट के बारे में जानें पर जाएं.

  3. अपने C++ प्रोजेक्ट में Firebase SDK टूल जोड़ें.

    यहां दिए गए चरणों में, C++ प्रोजेक्ट में काम करने वाले किसी भी Firebase प्रॉडक्ट को जोड़ने का तरीका बताया गया है. इस उदाहरण में, हम Firebase Authentication और Firebase Realtime Database को जोड़ने का तरीका बता रहे हैं.

    1. अपने FIREBASE_CPP_SDK_DIR एनवायरमेंट वैरिएबल को, अनज़िप किए गए Firebase C++ SDK टूल की जगह पर सेट करें.

    2. अपने प्रोजेक्ट की CMakeLists.txt फ़ाइल में, यहां दिया गया कॉन्टेंट जोड़ें. इसमें, उन Firebase प्रॉडक्ट के लिए लाइब्रेरी भी शामिल करें जिनका आपको इस्तेमाल करना है. उदाहरण के लिए, Firebase Authentication और Firebase Realtime Database का इस्तेमाल करने के लिए:

      # Add Firebase libraries to the target using the function from the SDK.
      add_subdirectory(${FIREBASE_CPP_SDK_DIR} bin/ EXCLUDE_FROM_ALL)
      
      # The Firebase C++ library `firebase_app` is required,
      # and it must always be listed last.
      
      # Add the Firebase SDKs for the products you want to use in your app
      # For example, to use Firebase Authentication and Firebase Realtime Database
      set(firebase_libs firebase_auth firebase_database firebase_app)
      target_link_libraries(${target_name} "${firebase_libs}")
  4. अपना C++ ऐप्लिकेशन चलाएं.

उपलब्ध लाइब्रेरी (डेस्कटॉप)

Firebase C++ SDK टूल में, सुविधाओं के सबसेट के लिए डेस्कटॉप वर्कफ़्लो की सुविधा शामिल है. इससे, Firebase के कुछ हिस्सों का इस्तेमाल, Windows, macOS, और Linux पर डेस्कटॉप के लिए बने स्टैंडअलोन बिल्ड में किया जा सकता है.

Firebase प्रॉडक्ट लाइब्रेरी रेफ़रंस (CMake का इस्तेमाल करके)
App Check firebase_app_check
(ज़रूरी है) firebase_app
Authentication firebase_auth
(ज़रूरी है) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Cloud Functions firebase_functions
(ज़रूरी है) firebase_app
Cloud Storage firebase_storage
(ज़रूरी है) firebase_app
Realtime Database firebase_database
(ज़रूरी है) firebase_app
Remote Config firebase_remote_config
(ज़रूरी है) firebase_app

Firebase, Windows, macOS, और Linux के लिए ऐप्लिकेशन बनाते समय, बाकी डेस्कटॉप लाइब्रेरी को स्टब (काम न करने वाले) के तौर पर लागू करता है. इसलिए, डेस्कटॉप को टारगेट करने के लिए, आपको शर्त के साथ कोड को कंपाइल करने की ज़रूरत नहीं है.

Realtime Database डेस्कटॉप

डेस्कटॉप के लिए Realtime Database SDK टूल, आपके डेटाबेस को ऐक्सेस करने के लिए REST का इस्तेमाल करता है. इसलिए, आपको डेस्कटॉप पर Query::OrderByChild() के साथ इस्तेमाल किए जाने वाले इंडेक्स की जानकारी देनी होगी. ऐसा न करने पर, आपके लिसनर काम नहीं करेंगे.

डेस्कटॉप सेटअप के बारे में ज़्यादा जानकारी

Windows लाइब्रेरी

Windows के लिए, लाइब्रेरी के वर्शन इनके आधार पर उपलब्ध कराए जाते हैं:

  • बिल्ड प्लैटफ़ॉर्म: 32-बिट (x86) बनाम 64-बिट (x64) मोड
  • Windows रनटाइम एनवायरमेंट: मल्टी-थ्रेड / MT बनाम मल्टी-थ्रेड डीएलएल /MD
  • टारगेट: रिलीज़ बनाम डीबग

ध्यान दें कि इन लाइब्रेरी की जांच, Visual Studio 2015 और 2017 का इस्तेमाल करके की गई थी.

Windows पर C++ डेस्कटॉप ऐप्लिकेशन बनाते समय, अपने प्रोजेक्ट में ये Windows SDK टूल वाली लाइब्रेरी लिंक करें. ज़्यादा जानकारी के लिए, अपने कंपाइलर के दस्तावेज़ देखें.

Firebase C++ लाइब्रेरी Windows SDK टूल की लाइब्रेरी डिपेंडेंसी
App Check advapi32, ws2_32, crypt32
Authentication advapi32, ws2_32, crypt32
Cloud Firestore advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
Cloud Functions advapi32, ws2_32, crypt32, rpcrt4, ole32
Cloud Storage advapi32, ws2_32, crypt32
Realtime Database advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
Remote Config advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS लाइब्रेरी

macOS (Darwin) के लिए, लाइब्रेरी के वर्शन 64-बिट (x86_64) प्लैटफ़ॉर्म के लिए उपलब्ध हैं. आपकी सुविधा के लिए फ़्रेमवर्क भी उपलब्ध हैं.

ध्यान दें कि macOS लाइब्रेरी की जांच, Xcode 13.3.1 का इस्तेमाल करके की गई है.

macOS पर C++ डेस्कटॉप ऐप्लिकेशन बनाते समय, अपने प्रोजेक्ट में ये लिंक करें:

  • pthread सिस्टम लाइब्रेरी
  • CoreFoundation macOS सिस्टम फ़्रेमवर्क
  • Foundation macOS सिस्टम फ़्रेमवर्क
  • Security macOS सिस्टम फ़्रेमवर्क
  • GSS macOS सिस्टम फ़्रेमवर्क
  • Kerberos macOS सिस्टम फ़्रेमवर्क
  • SystemConfiguration macOS सिस्टम फ़्रेमवर्क

ज़्यादा जानकारी के लिए, अपने कंपाइलर के दस्तावेज़ देखें.

Linux लाइब्रेरी

Linux के लिए, लाइब्रेरी के वर्शन 32-बिट (i386) और 64-बिट (x86_64) प्लैटफ़ॉर्म के लिए उपलब्ध हैं.

ध्यान दें कि Ubuntu पर GCC 4.8.0, GCC 7.2.0, और Clang 5.0 का इस्तेमाल करके, Linux लाइब्रेरी की जांच की गई थी.

Linux पर C++ डेस्कटॉप ऐप्लिकेशन बनाते समय, अपने प्रोजेक्ट में pthread सिस्टम लाइब्रेरी को लिंक करें. ज़्यादा जानकारी के लिए, अपने कंपाइलर के दस्तावेज़ देखें. अगर GCC 5 या उसके बाद के वर्शन का इस्तेमाल करके बिल्ड किया जा रहा है, तो -D_GLIBCXX_USE_CXX11_ABI=0 तय करें.

अगले चरण