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

अपने C++ गेम्स को हमारे Firebase C++ SDKs के साथ सशक्त बनाएं जो Firebase SDKs के शीर्ष पर C++ इंटरफ़ेस प्रदान करते हैं।

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

हमारे फायरबेस गेम्स पेज पर फायरबेस के साथ अपने गेम को सशक्त बनाने के बारे में अधिक जानकारी प्राप्त करें।

क्या आपके C++ प्रोजेक्ट में पहले से ही Firebase जोड़ा गया है? सुनिश्चित करें कि आप Firebase C++ SDK का नवीनतम संस्करण उपयोग कर रहे हैं।

आवश्यक शर्तें

  • निम्नलिखित स्थापित करें:

    • Xcode 13.3.1 या बाद का संस्करण
    • कोकोपोड्स 1.12.0 या बाद का संस्करण
  • सुनिश्चित करें कि आपका प्रोजेक्ट निम्नलिखित प्लेटफ़ॉर्म संस्करणों या बाद के संस्करण को लक्षित करता है:

    • आईओएस 11
    • टीवीओएस 12
  • अपना ऐप चलाने के लिए एक भौतिक उपकरण सेट करें या सिम्युलेटर का उपयोग करें।

  • अपने Google खाते का उपयोग करके फायरबेस में साइन इन करें

चरण 2 : एक फायरबेस प्रोजेक्ट बनाएं

इससे पहले कि आप अपने C++ प्रोजेक्ट में Firebase जोड़ सकें, आपको अपने C++ प्रोजेक्ट से कनेक्ट करने के लिए एक Firebase प्रोजेक्ट बनाना होगा। फायरबेस प्रोजेक्ट्स के बारे में अधिक जानने के लिए फायरबेस प्रोजेक्ट्स को समझें पर जाएँ।

चरण 3 : अपने ऐप को फायरबेस के साथ पंजीकृत करें

अपने ऐप्पल ऐप में फ़ायरबेस का उपयोग करने के लिए, आपको अपने ऐप को अपने फ़ायरबेस प्रोजेक्ट के साथ पंजीकृत करना होगा। अपने ऐप को पंजीकृत करने को अक्सर अपने ऐप को अपने प्रोजेक्ट में "जोड़ना" कहा जाता है।

  1. फायरबेस कंसोल पर जाएं।

  2. प्रोजेक्ट अवलोकन पृष्ठ के केंद्र में, सेटअप वर्कफ़्लो लॉन्च करने के लिए iOS+ आइकन पर क्लिक करें।

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

  3. बंडल आईडी फ़ील्ड में अपने ऐप की बंडल आईडी दर्ज करें।

  4. (वैकल्पिक) अन्य ऐप जानकारी दर्ज करें: ऐप उपनाम और ऐप स्टोर आईडी

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

चरण 4 : फायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें

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

  2. अपने C++ प्रोजेक्ट को IDE में खोलें, फिर अपनी कॉन्फ़िग फ़ाइल को अपने C++ प्रोजेक्ट के रूट में खींचें।

  3. यदि संकेत दिया जाए, तो सभी लक्ष्यों में कॉन्फ़िगरेशन फ़ाइल जोड़ने का चयन करें।

आपने फ़ायरबेस कंसोल में सेट अप कार्य पूरा कर लिया है। नीचे फ़ायरबेस C++ SDK जोड़ना जारी रखें।

चरण 5 : फायरबेस सी++ एसडीके जोड़ें

इस अनुभाग के चरण इस बात का उदाहरण हैं कि समर्थित फ़ायरबेस उत्पादों को अपने फ़ायरबेस C++ प्रोजेक्ट में कैसे जोड़ा जाए।

  1. फायरबेस सी++ एसडीके डाउनलोड करें, फिर एसडीके को किसी सुविधाजनक स्थान पर अनज़िप करें।

    फायरबेस C++ SDK प्लेटफ़ॉर्म-विशिष्ट नहीं है, लेकिन इसमें प्लेटफ़ॉर्म-विशिष्ट लाइब्रेरीज़ शामिल हैं।

  2. अनज़िप्ड एसडीके से फायरबेस पॉड्स जोड़ें।

    1. यदि आपके पास पहले से कोई पॉडफ़ाइल नहीं है तो एक पॉडफ़ाइल बनाएं:

      cd your-app-directory
      pod init

    2. अपने पॉडफ़ाइल में, फ़ायरबेस पॉड जोड़ें जिन्हें आप अपने ऐप में उपयोग करना चाहते हैं।

      एनालिटिक्स सक्षम

      # 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'

      एनालिटिक्स सक्षम नहीं है

      # 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. अनज़िप्ड एसडीके से फायरबेस फ्रेमवर्क जोड़ें।

    इन फ़्रेमवर्क को जोड़ने का सबसे आसान तरीका आम तौर पर उन्हें Finder विंडो से सीधे Xcode के प्रोजेक्ट नेविगेटर फलक (डिफ़ॉल्ट रूप से दूर-बाएँ फलक; या Xcode के ऊपरी-बाएँ में फ़ाइल आइकन पर क्लिक करना) में खींचना है।

    1. फ़ायरबेस C++ फ़्रेमवर्क firebase.framework जोड़ें, जो किसी भी फ़ायरबेस उत्पाद का उपयोग करने के लिए आवश्यक है।

    2. प्रत्येक फ़ायरबेस उत्पाद के लिए फ़्रेमवर्क जोड़ें जिसका आप उपयोग करना चाहते हैं। उदाहरण के लिए, फायरबेस प्रमाणीकरण का उपयोग करने के लिए, firebase_auth.framework जोड़ें।

  4. फ़ायरबेस कंसोल में वापस, सेटअप वर्कफ़्लो में, अगला क्लिक करें।

  5. यदि आपने एनालिटिक्स जोड़ा है, तो फायरबेस को सत्यापन भेजने के लिए अपना ऐप चलाएं कि आपने फायरबेस को सफलतापूर्वक एकीकृत कर लिया है। अन्यथा, आप इस सत्यापन चरण को छोड़ सकते हैं।

    आपके डिवाइस लॉग फायरबेस सत्यापन प्रदर्शित करेंगे कि आरंभीकरण पूरा हो गया है। यदि आपने अपना ऐप ऐसे एमुलेटर पर चलाया है जिसके पास नेटवर्क एक्सेस है, तो फायरबेस कंसोल आपको सूचित करता है कि आपका ऐप कनेक्शन पूरा हो गया है।

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

उपलब्ध पुस्तकालय

संदर्भ दस्तावेज़ और GitHub पर हमारे ओपन-सोर्स SDK रिलीज़ में C++ फ़ायरबेस लाइब्रेरीज़ के बारे में अधिक जानें।

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

ध्यान दें कि Android के लिए C++ लाइब्रेरीज़ इस सेटअप पृष्ठ के Android संस्करण पर सूचीबद्ध हैं।

प्रत्येक फायरबेस उत्पाद की अलग-अलग निर्भरताएँ होती हैं। वांछित फायरबेस उत्पाद के लिए सभी सूचीबद्ध निर्भरताओं को अपने पॉडफाइल और सी++ प्रोजेक्ट में जोड़ना सुनिश्चित करें।

प्रत्येक फायरबेस उत्पाद केवल Apple OS प्लेटफ़ॉर्म (iOS, tvOS, आदि) के चयन का समर्थन कर सकता है। C++ और Firebase के बारे में अधिक जानें में जांचें कि प्रत्येक लाइब्रेरी द्वारा कौन से प्लेटफ़ॉर्म समर्थित हैं।

फायरबेस उत्पाद फ्रेमवर्क और पॉड्स
AdMob (आवश्यक) firebase.framework
firebase_admob.framework
(आवश्यक) firebase_analytics.framework

pod 'FirebaseAdMob', '10.22.0'
(आवश्यक) pod 'FirebaseAnalytics', '10.22.0'
एनालिटिक्स (आवश्यक) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.22.0'
ऐप जांचें (आवश्यक) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.22.0'
प्रमाणीकरण (आवश्यक) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.22.0'
क्लाउड फायरस्टोर (आवश्यक) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.22.0'
pod 'FirebaseAuth', '10.22.0'
क्लाउड फ़ंक्शंस (आवश्यक) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.22.0'
क्लाउड मैसेजिंग (आवश्यक) firebase.framework
firebase_messaging.framework
(अनुशंसित) firebase_analytics.framework

pod 'FirebaseMessaging', '10.22.0'
(अनुशंसित) pod 'FirebaseAnalytics', '10.22.0'
घन संग्रहण (आवश्यक) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.22.0'
गतिशील लिंक (आवश्यक) firebase.framework
firebase_dynamic_links.framework
(अनुशंसित) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.22.0'
(अनुशंसित) pod 'FirebaseAnalytics', '10.22.0'
रीयलटाइम डेटाबेस (आवश्यक) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.22.0'
रिमोट कॉन्फिग (आवश्यक) firebase.framework
firebase_remote_config.framework
(अनुशंसित) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '10.22.0'
(अनुशंसित) pod 'FirebaseAnalytics', '10.22.0'

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

विधि स्विजलिंग

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

डायनेमिक लिंक्स और क्लाउड मैसेजिंग लाइब्रेरी को मेथड स्विज़लिंग का उपयोग करके हैंडलर को एप्लिकेशन डेलीगेट से जोड़ने की आवश्यकता होती है। यदि आप इनमें से किसी भी फायरबेस उत्पाद का उपयोग कर रहे हैं, तो लोड समय पर, फायरबेस आपके AppDelegate क्लास की पहचान करेगा और उस पर आवश्यक तरीकों को घुमाएगा, कॉल को आपके मौजूदा विधि कार्यान्वयन पर वापस जोड़ देगा।

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

जब आप कोई गेम बना रहे होते हैं, तो पहले डेस्कटॉप प्लेटफ़ॉर्म पर अपने गेम का परीक्षण करना, फिर बाद में विकास में मोबाइल उपकरणों पर तैनात करना और परीक्षण करना अक्सर आसान होता है। इस वर्कफ़्लो का समर्थन करने के लिए, हम फायरबेस C++ SDK का एक सबसेट प्रदान करते हैं जो Windows, macOS, Linux और C++ संपादक के भीतर से चल सकता है।

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

    1. CMake के लिए अपना C++ प्रोजेक्ट कॉन्फ़िगर करें।
    2. एक फायरबेस प्रोजेक्ट बनाएं
    3. अपना ऐप (आईओएस या एंड्रॉइड) फायरबेस के साथ पंजीकृत करें
    4. एक मोबाइल-प्लेटफ़ॉर्म फ़ायरबेस कॉन्फ़िगरेशन फ़ाइल जोड़ें
  2. फायरबेस कॉन्फ़िगरेशन फ़ाइल का एक डेस्कटॉप संस्करण बनाएं:

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

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

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

    इस डेस्कटॉप कॉन्फ़िगरेशन फ़ाइल में C++ प्रोजेक्ट आईडी है जिसे आपने फ़ायरबेस कंसोल सेटअप वर्कफ़्लो में दर्ज किया था। कॉन्फ़िगरेशन फ़ाइलों के बारे में अधिक जानने के लिए फ़ायरबेस प्रोजेक्ट्स को समझें पर जाएँ।

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

    नीचे दिए गए चरण आपके C++ प्रोजेक्ट में किसी भी समर्थित फ़ायरबेस उत्पाद को जोड़ने के उदाहरण के रूप में काम करते हैं। इस उदाहरण में, हम फायरबेस प्रमाणीकरण और फायरबेस रीयलटाइम डेटाबेस जोड़कर चलते हैं।

    1. अपने FIREBASE_CPP_SDK_DIR पर्यावरण चर को अनज़िप्ड फायरबेस C++ SDK के स्थान पर सेट करें।

    2. अपने प्रोजेक्ट की CMakeLists.txt फ़ाइल में, फायरबेस उत्पादों के लिए लाइब्रेरी सहित निम्नलिखित सामग्री जोड़ें, जिनका आप उपयोग करना चाहते हैं। उदाहरण के लिए, फायरबेस प्रमाणीकरण और फायरबेस रीयलटाइम डेटाबेस का उपयोग करने के लिए:

      # 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_app_check
(आवश्यक) firebase_app
प्रमाणीकरण firebase_auth
(आवश्यक) firebase_app
क्लाउड फायरस्टोर firebase_firestore
firebase_auth
firebase_app
क्लाउड फ़ंक्शंस firebase_functions
(आवश्यक) firebase_app
घन संग्रहण firebase_storage
(आवश्यक) firebase_app
रीयलटाइम डेटाबेस firebase_database
(आवश्यक) firebase_app
रिमोट कॉन्फिग firebase_remote_config
(आवश्यक) firebase_app

विंडोज़, मैकओएस और लिनक्स के लिए निर्माण करते समय फायरबेस शेष डेस्कटॉप लाइब्रेरी को सुविधा के लिए स्टब (गैर-कार्यात्मक) कार्यान्वयन के रूप में प्रदान करता है। इसलिए, आपको डेस्कटॉप को लक्षित करने के लिए सशर्त रूप से कोड संकलित करने की आवश्यकता नहीं है।

रीयलटाइम डेटाबेस डेस्कटॉप

डेस्कटॉप के लिए रीयलटाइम डेटाबेस SDK आपके डेटाबेस तक पहुंचने के लिए REST का उपयोग करता है, इसलिए आपको डेस्कटॉप पर Query::OrderByChild() के साथ उपयोग किए जाने वाले इंडेक्स को घोषित करना होगा या आपके श्रोता विफल हो जाएंगे।

डेस्कटॉप सेटअप के लिए अतिरिक्त जानकारी

विंडोज़ पुस्तकालय

विंडोज़ के लिए, लाइब्रेरी संस्करण निम्नलिखित के आधार पर प्रदान किए जाते हैं:

  • प्लेटफ़ॉर्म बनाएँ: 32-बिट (x86) बनाम 64-बिट (x64) मोड
  • विंडोज़ रनटाइम वातावरण: मल्टीथ्रेडेड / एमटी बनाम मल्टीथ्रेडेड डीएलएल /एमडी
  • लक्ष्य: रिलीज़ बनाम डिबग

ध्यान दें कि निम्नलिखित पुस्तकालयों का परीक्षण विजुअल स्टूडियो 2015 और 2017 का उपयोग करके किया गया था।

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

फायरबेस सी++ लाइब्रेरी विंडोज़ एसडीके लाइब्रेरी निर्भरताएँ
ऐप जांचें advapi32, ws2_32, crypt32
प्रमाणीकरण advapi32, ws2_32, crypt32
क्लाउड फायरस्टोर advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32
क्लाउड फ़ंक्शंस advapi32, ws2_32, crypt32, rpcrt4, ole32
घन संग्रहण advapi32, ws2_32, crypt32
रीयलटाइम डेटाबेस advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv
रिमोट कॉन्फिग advapi32, ws2_32, crypt32, rpcrt4, ole32

macOS लाइब्रेरीज़

MacOS (डार्विन) के लिए, 64-बिट (x86_64) प्लेटफ़ॉर्म के लिए लाइब्रेरी संस्करण प्रदान किए जाते हैं। आपकी सुविधा के लिए फ्रेमवर्क भी उपलब्ध कराए गए हैं।

ध्यान दें कि macOS लाइब्रेरी का परीक्षण Xcode 13.3.1 का उपयोग करके किया गया है।

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

  • pthread सिस्टम लाइब्रेरी
  • CoreFoundation macOS सिस्टम फ्रेमवर्क
  • Foundation macOS सिस्टम फ्रेमवर्क
  • Security macOS सिस्टम ढाँचा
  • GSS मैकओएस सिस्टम ढांचा
  • Kerberos macOS सिस्टम फ्रेमवर्क
  • SystemConfiguration macOS सिस्टम फ़्रेमवर्क

अधिक जानकारी के लिए अपने कंपाइलर दस्तावेज़ से परामर्श लें।

लिनक्स पुस्तकालय

लिनक्स के लिए, 32-बिट (i386) और 64-बिट (x86_64) प्लेटफ़ॉर्म के लिए लाइब्रेरी संस्करण प्रदान किए जाते हैं।

ध्यान दें कि लिनक्स पुस्तकालयों का परीक्षण उबंटू पर जीसीसी 4.8.0, जीसीसी 7.2.0 और क्लैंग 5.0 का उपयोग करके किया गया था।

Linux पर C++ डेस्कटॉप ऐप्स बनाते समय, pthread सिस्टम लाइब्रेरी को अपने प्रोजेक्ट से लिंक करें। अधिक जानकारी के लिए अपने कंपाइलर दस्तावेज़ से परामर्श लें। यदि आप GCC 5 या बाद के संस्करण के साथ निर्माण कर रहे हैं, तो -D_GLIBCXX_USE_CXX11_ABI=0 को परिभाषित करें।

अगले कदम