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

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

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

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

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


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

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

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

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

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

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

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

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

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

  1. Firebase कंसोल पर जाएं.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  2. Firebase Apple प्लैटफ़ॉर्म SDK टूल की डिपेंडेंसी इंस्टॉल और मैनेज करने के लिए, Swift Package Manager का इस्तेमाल करें.

    1. Xcode में, अपना ऐप्लिकेशन प्रोजेक्ट खोलें. इसके बाद, File > Add Package Dependencies पर जाएं.

    2. प्रॉम्प्ट मिलने पर, Firebase Apple प्लैटफ़ॉर्म SDK टूल की रिपॉज़िटरी जोड़ें:

      https://github.com/firebase/firebase-ios-sdk.git

    3. डिपेंडेंसी के नियम के लिए, Exact Version चुनें और 13.1.1 डालें.

    4. वे Firebase लाइब्रेरी चुनें जिनका इस्तेमाल आपको अपने ऐप्लिकेशन में करना है. उदाहरण के लिए, FirebaseAuth और FirebaseDatabase. अगर आपके Firebase प्रोजेक्ट में Google Analytics चालू है, तो FirebaseAnalytics को जोड़ना न भूलें.

    इसके बाद, Xcode बैकग्राउंड में आपकी डिपेंडेंसी से जुड़ी समस्या को हल करना और उन्हें डाउनलोड करना शुरू कर देगा.

  3. अनज़िप किए गए SDK टूल की xcframeworks डायरेक्ट्री से, Firebase XCFrameworks जोड़ें.

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

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

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

  4. Firebase कंसोल में, सेटअप वर्कफ़्लो पर वापस जाएं और Next पर क्लिक करें.

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

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

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

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

रेफ़रंस दस्तावेज़ और GitHub पर हमारे ओपन-सोर्स एसडीके रिलीज़ में, C++ Firebase लाइब्रेरी के बारे में ज़्यादा जानें.

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

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

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

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

Firebase प्रॉडक्ट XCFrameworks और Swift Package Manager लाइब्रेरी
Analytics (ज़रूरी है) firebase.xcframework
firebase_analytics.xcframework

FirebaseAnalytics (13.1.1)
App Check (ज़रूरी है) firebase.xcframework
firebase_app_check.xcframework

FirebaseAppCheck (13.1.1)
Authentication (ज़रूरी है) firebase.xcframework
firebase_auth.xcframework

FirebaseAuth (13.1.1)
Cloud Firestore (ज़रूरी है) firebase.xcframework
firebase_firestore.xcframework
firebase_auth.xcframework

FirebaseFirestore (13.1.1)
FirebaseAuth (13.1.1)
Cloud Functions (ज़रूरी है) firebase.xcframework
firebase_functions.xcframework

FirebaseFunctions (13.1.1)
Cloud Messaging (ज़रूरी है) firebase.xcframework
firebase_messaging.xcframework
(सुझाया गया) firebase_analytics.xcframework

FirebaseMessaging (13.1.1)
(सुझाया गया) FirebaseAnalytics (13.1.1)
Cloud Storage (ज़रूरी है) firebase.xcframework
firebase_storage.xcframework

FirebaseStorage (13.1.1)
Realtime Database (ज़रूरी है) firebase.xcframework
firebase_database.xcframework

FirebaseDatabase (13.1.1)
Remote Config (ज़रूरी है) firebase.xcframework
firebase_remote_config.xcframework
(सुझाया गया) firebase_analytics.xcframework

FirebaseRemoteConfig (13.1.1)
(सुझाया गया) FirebaseAnalytics (13.1.1)
इस्तेमाल से बाहर हो चुकी या काम न करने वाली लाइब्रेरी
Dynamic Links (ज़रूरी है) firebase.xcframework
firebase_dynamic_links.xcframework
(सुझाया गया) firebase_analytics.xcframework

FirebaseDynamicLinks (13.1.1)
(सुझाया गया) FirebaseAnalytics (13.1.1)

मोबाइल सेटअप के लिए अतिरिक्त जानकारी

Swift Package Manager का इस्तेमाल किए बिना इंटिग्रेट करना

अगर आपको Firebase Apple प्लैटफ़ॉर्म के SDK टूल की डिपेंडेंसी को मैनेज करने के लिए, Swift Package Manager का इस्तेमाल नहीं करना है, तो इंटिग्रेशन के अन्य विकल्पों के लिए, Apple प्लैटफ़ॉर्म के सेटअप की गाइड में Swift Package Manager का इस्तेमाल किए बिना इंटिग्रेट करना लेख पढ़ें.

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

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

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

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

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

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

    1. CMake के लिए अपना C++ प्रोजेक्ट कॉन्फ़िगर करें.
    2. Firebase प्रोजेक्ट बनाना
    3. Firebase में अपने ऐप्लिकेशन (iOS या Android) को रजिस्टर करना
    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 बनाम मल्टीथ्रेडेड DLL /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 26.2 का इस्तेमाल करके टेस्ट किया गया है.

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

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

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

Linux लाइब्रेरी

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

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

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

अगले चरण