เพิ่ม Firebase ไปยังโปรเจ็กต์ C++

เพิ่มประสิทธิภาพให้กับเกม C++ ของคุณด้วย Firebase C++ SDK ที่มี C++ บน Firebase SDK

เข้าถึง Firebase ทั้งหมดจากโค้ด C++ ของคุณโดยไม่ต้องเขียน โค้ดสำหรับแพลตฟอร์มโดยเฉพาะ นอกจากนี้ Firebase SDK ยังแปลเฉพาะบางภาษา สำนวนที่ Firebase ใช้ในอินเทอร์เฟซที่นักพัฒนาซอฟต์แวร์ C++ คุ้นเคยมากขึ้น

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพเกมด้วย Firebase ได้ที่ หน้าเกม Firebase

เพิ่ม Firebase ในโปรเจ็กต์ C++ แล้วใช่ไหม ตรวจสอบว่าคุณใช้ Firebase C++ SDK เวอร์ชันล่าสุด


ข้อกำหนดเบื้องต้น

  • ติดตั้งสิ่งต่อไปนี้

    • Xcode 13.3.1 ขึ้นไป
    • CocoaPods 1.12.0 ขึ้นไป
  • ตรวจสอบว่าโปรเจ็กต์กำหนดเป้าหมายเป็นแพลตฟอร์มเวอร์ชันต่อไปนี้หรือเวอร์ชันที่ใหม่กว่า

    • iOS 13
    • TVOS 13
  • ตั้งค่าอุปกรณ์จริงหรือใช้เครื่องจำลองเพื่อเรียกใช้แอป

  • ลงชื่อเข้าใช้ Firebase โดยใช้ บัญชี Google

ขั้นตอนที่ 2: สร้างโปรเจ็กต์ Firebase

คุณต้องสร้าง Firebase ก่อนจึงจะเพิ่ม Firebase ลงในโปรเจ็กต์ C++ ได้ เพื่อเชื่อมต่อกับโปรเจ็กต์ C++ ไปที่เว็บไซต์ ทำความเข้าใจโปรเจ็กต์ Firebase เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ โปรเจ็กต์ Firebase

ขั้นตอนที่ 3: ลงทะเบียนแอปกับ Firebase

หากต้องการใช้ Firebase ในแอป Apple คุณต้องลงทะเบียนแอปด้วย โปรเจ็กต์ Firebase การลงทะเบียนแอปมักเรียกว่า "การเพิ่ม" แอปของคุณไปยัง

  1. ไปที่คอนโซลของ Firebase

  2. ที่ตรงกลางของหน้าภาพรวมโปรเจ็กต์ ให้คลิกไอคอน iOS+ เพื่อเปิดเวิร์กโฟลว์การตั้งค่า

    หากคุณเพิ่มแอปลงในโปรเจ็กต์ Firebase แล้ว ให้คลิกเพิ่มแอป เพื่อแสดงตัวเลือกแพลตฟอร์ม

  3. ป้อนรหัสชุดของแอปในช่องรหัสแพ็กเกจ

  4. (ไม่บังคับ) ป้อนข้อมูลอื่นๆ ของแอป ชื่อเล่นแอปและรหัส App Store

  5. คลิกลงทะเบียนแอป

ขั้นตอนที่ 4: เพิ่มไฟล์การกำหนดค่า Firebase

  1. คลิก Download GoogleService-Info.plist เพื่อรับ Firebase Apple ไฟล์การกำหนดค่าแพลตฟอร์ม

  2. เปิดโปรเจ็กต์ C++ ใน IDE จากนั้นลากไฟล์การกำหนดค่าลงในรูท ของโปรเจ็กต์ C++

  3. หากได้รับข้อความแจ้ง ให้เลือกเพิ่มไฟล์การกำหนดค่าลงในเป้าหมายทั้งหมด

คุณตั้งค่างานในคอนโซล Firebase เรียบร้อยแล้ว เข้าสู่ เพิ่ม SDK ของ Firebase C++ ด้านล่าง

ขั้นตอนที่ 5: เพิ่ม Firebase C++ SDK

ขั้นตอนในส่วนนี้เป็นตัวอย่างของวิธีเพิ่ม ผลิตภัณฑ์ Firebase ที่รองรับไปยัง Firebase โปรเจ็กต์ C++

  1. ดาวน์โหลด Firebase C++ SDK แล้วแตกไฟล์ SDK ในที่ที่สะดวก

    Firebase C++ SDK ไม่ได้เจาะจงแพลตฟอร์ม แต่มี ไลบรารีเฉพาะแพลตฟอร์ม

  2. เพิ่มพ็อด Firebase จาก SDK ที่แยกไฟล์แล้ว

    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. ติดตั้งพ็อด แล้วเปิดไฟล์ .xcworkspace ใน Xcode

      pod install
      open your-app.xcworkspace

  3. เพิ่มเฟรมเวิร์ก Firebase จากรายการที่แตกแล้ว SDK

    วิธีที่ง่ายที่สุดในการเพิ่มเฟรมเวิร์กเหล่านี้คือการลากจาก Finder โดยตรงในแผง Project Navigator ของ Xcode ( แผงด้านซ้ายสุดโดยค่าเริ่มต้น หรือคลิกไอคอนไฟล์ที่ด้านซ้ายบนของ Xcode)

    1. เพิ่มเฟรมเวิร์ก Firebase C++ firebase.framework ต้องระบุเพื่อใช้ผลิตภัณฑ์ Firebase ใดก็ได้

    2. เพิ่มเฟรมเวิร์กสำหรับผลิตภัณฑ์ Firebase แต่ละรายการที่ต้องการใช้ สำหรับ เช่น หากต้องการใช้ Firebase Authentication ให้เพิ่ม firebase_auth.framework

  4. กลับไปที่คอนโซล Firebase ไปที่ขั้นตอนการตั้งค่า แล้วคลิกถัดไป

  5. หากคุณเพิ่ม Analytics แล้ว ให้เรียกใช้แอปเพื่อส่งการยืนยันไปยัง Firebase ว่าคุณผสานรวม Firebase สำเร็จแล้ว ไม่เช่นนั้น ให้ข้ามขั้นตอนนี้

    บันทึกของอุปกรณ์จะแสดงการยืนยัน Firebase ที่เริ่มต้น เสร็จสมบูรณ์ หากคุณเรียกใช้แอปในโปรแกรมจําลองที่มีสิทธิ์เข้าถึงเครือข่าย คอนโซล Firebase จะแจ้งให้ทราบว่าการเชื่อมต่อแอปของคุณเสร็จสมบูรณ์แล้ว

เรียบร้อยแล้ว แอป C++ ได้รับการลงทะเบียนและกําหนดค่าให้ใช้ Firebase Google อีกด้วย

ไลบรารีที่ใช้ได้

ดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารี Firebase ของ C++ ใน เอกสารอ้างอิงและใน SDK โอเพนซอร์สของเรา ใน GitHub

ไลบรารีที่ใช้ได้กับแพลตฟอร์ม Apple

โปรดทราบว่าไลบรารี C++ สำหรับ Android แสดงอยู่ในเวอร์ชัน Android ของไลบรารีนี้ หน้าการตั้งค่า

ผลิตภัณฑ์ Firebase แต่ละรายการมีทรัพยากร Dependency ที่แตกต่างกัน อย่าลืมเพิ่ม ได้แสดงรายการทรัพยากร Dependency สำหรับผลิตภัณฑ์ Firebase ที่ต้องการไปยัง Podfile และ โปรเจ็กต์ C++

ผลิตภัณฑ์ Firebase แต่ละรายการจะรองรับแพลตฟอร์ม Apple OS บางอย่างเท่านั้น (iOS, tvOS เป็นต้น) ตรวจสอบว่าไลบรารีแต่ละรายการรองรับแพลตฟอร์มใดบ้าง ดูข้อมูลเพิ่มเติมเกี่ยวกับ C++ และ Firebase

ผลิตภัณฑ์ Firebase เฟรมเวิร์กและพ็อด
AdMob (ต้องระบุ) firebase.framework
firebase_admob.framework
(ต้องระบุ) firebase_analytics.framework

pod 'FirebaseAdMob', '11.0.0'
(ต้องระบุ) pod 'FirebaseAnalytics', '11.0.0'
Analytics (ต้องระบุ) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '11.0.0'
App Check (ต้องระบุ) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '11.0.0'
Authentication (ต้องระบุ) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '11.0.0'
Cloud Firestore (ต้องระบุ) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '11.0.0'
pod 'FirebaseAuth', '11.0.0'
Cloud Functions (ต้องระบุ) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '11.0.0'
Cloud Messaging (ต้องระบุ) firebase.framework
firebase_messaging.framework
(แนะนำ) firebase_analytics.framework

pod 'FirebaseMessaging', '11.0.0'
(แนะนำ) pod 'FirebaseAnalytics', '11.0.0'
Cloud Storage (ต้องระบุ) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '11.0.0'
Dynamic Links (ต้องระบุ) firebase.framework
firebase_dynamic_links.framework
(แนะนำ) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '11.0.0'
(แนะนำ) pod 'FirebaseAnalytics', '11.0.0'
Realtime Database (ต้องระบุ) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '11.0.0'
Remote Config (ต้องระบุ) firebase.framework
firebase_remote_config.framework
(แนะนำ) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '11.0.0'
(แนะนำ) pod 'FirebaseAnalytics', '11.0.0'

ข้อมูลเพิ่มเติมสำหรับการตั้งค่าอุปกรณ์เคลื่อนที่

การแลกเปลี่ยนเมธอด

ใน iOS เหตุการณ์บางอย่างของแอปพลิเคชัน (เช่น การเปิด URL และการรับ ) จะต้องมีการมอบสิทธิ์แอปพลิเคชันเพื่อดำเนินการ เช่น การรับการแจ้งเตือนอาจต้องใช้การสมัครของคุณ ที่ได้รับมอบสิทธิ์ในการนำ application:didReceiveRemoteNotification: ไปใช้ เพราะ แอปพลิเคชัน iOS แต่ละแอปมีผู้รับมอบสิทธิ์แอปของตนเอง Firebase จะใช้ เมธอด swizzling ซึ่งอนุญาตให้แทนที่เมธอดหนึ่งด้วยอีกเมธอดหนึ่ง เพื่อแนบเครื่องจัดการของตัวเอง นอกเหนือจากโค้ดที่คุณอาจติดตั้งไว้

ไลบรารี Dynamic Links และ Cloud Messaging จำเป็นต้องใช้ เพื่อแนบเครื่องจัดการกับผู้รับมอบสิทธิ์แอปพลิเคชันโดยใช้การกระจายเมธอด ถ้า คุณใช้ผลิตภัณฑ์ Firebase เหล่านี้อยู่ ขณะโหลด Firebase จะ ระบุชั้นเรียน AppDelegate ของคุณและสลับวิธีการที่จำเป็นลงในชั้นเรียน การเชื่อมโยงการเรียกกลับไปยังการใช้งานเมธอดที่คุณมีอยู่

ตั้งค่าเวิร์กโฟลว์บนเดสก์ท็อป (เบต้า)

เมื่อคุณสร้างเกม การทดสอบเกมบนเดสก์ท็อปมักจะทำได้ง่ายกว่ามาก แพลตฟอร์มก่อน แล้วจึงนำไปใช้และทดสอบบนอุปกรณ์เคลื่อนที่ในภายหลัง ถึง รองรับเวิร์กโฟลว์นี้ เรามี ส่วนหนึ่งของ SDK C++ Firebase รายการซึ่งทำงานได้ Windows, macOS, Linux และจากภายในเครื่องมือแก้ไข C++

  1. สำหรับเวิร์กโฟลว์บนเดสก์ท็อป คุณต้องทำดังนี้

    1. กำหนดค่าโปรเจ็กต์ C++ สำหรับ CMake
    2. สร้างโปรเจ็กต์ Firebase
    3. ลงทะเบียนแอป (iOS หรือ Android) ด้วย Firebase
    4. เพิ่มไฟล์การกำหนดค่า Firebase ในแพลตฟอร์มอุปกรณ์เคลื่อนที่
  2. สร้างไฟล์การกำหนดค่า Firebase เวอร์ชันเดสก์ท็อป ดังนี้

    • หากคุณเพิ่มไฟล์ Android google-services.json — เมื่อเรียกใช้ ในแอป Firebase จะค้นหาไฟล์อุปกรณ์เคลื่อนที่นี้โดยอัตโนมัติ สร้างไฟล์การกำหนดค่า Firebase เดสก์ท็อป (google-services-desktop.json)

    • หากคุณเพิ่มไฟล์ GoogleService-Info.plist สำหรับ iOS — ก่อนที่จะเรียกใช้ คุณต้องแปลงไฟล์อุปกรณ์เคลื่อนที่นี้เป็น Firebase เดสก์ท็อป ไฟล์การกำหนดค่าเซิร์ฟเวอร์ หากต้องการแปลงไฟล์ ให้เรียกใช้คำสั่งต่อไปนี้จาก เป็นไฟล์ GoogleService-Info.plist ของคุณ:

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

    ไฟล์การกำหนดค่าเดสก์ท็อปนี้มีรหัสโปรเจ็กต์ C++ ที่คุณป้อน เวิร์กโฟลว์การตั้งค่าคอนโซล Firebase ไปที่เว็บไซต์ ทำความเข้าใจโปรเจ็กต์ Firebase เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์การกำหนดค่า

  3. เพิ่ม Firebase SDK ลงในโปรเจ็กต์ C++

    ขั้นตอนด้านล่างนี้เป็นตัวอย่างของวิธีเพิ่ม ผลิตภัณฑ์ Firebase ที่รองรับไปยัง โปรเจ็กต์ C++ ของคุณ ในตัวอย่างนี้ เราพูดถึงการเพิ่ม Firebase Authentication และ Firebase Realtime Database

    1. ตั้งค่าตัวแปรสภาพแวดล้อม FIREBASE_CPP_SDK_DIR เป็นตำแหน่งของ SDK ของ C++ Firebase ที่คลายการบีบอัด

    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++

ไลบรารีที่ใช้ได้ (เดสก์ท็อป)

SDK C++ Firebase มีการรองรับเวิร์กโฟลว์บนเดสก์ท็อป สำหรับชุดย่อยของฟีเจอร์ ซึ่งทำให้ใช้งาน 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() บนเดสก์ท็อป มิเช่นนั้น Listener ของคุณจะล้มเหลว

ข้อมูลเพิ่มเติมสำหรับการตั้งค่าเดสก์ท็อป

ไลบรารี Windows

สำหรับ Windows เวอร์ชันไลบรารีจะจัดเตรียมโดยขึ้นอยู่กับรายการต่อไปนี้

  • แพลตฟอร์มบิลด์: โหมด 32 บิต (x86) เทียบกับ 64 บิต (x64)
  • สภาพแวดล้อมรันไทม์ของ Windows: มัลติเธรด / MT เทียบกับ DLL /MD แบบมัลติเธรด
  • เป้าหมาย: รุ่นเทียบกับการแก้ไขข้อบกพร่อง

โปรดทราบว่าไลบรารีต่อไปนี้ได้รับการทดสอบโดยใช้ Visual Studio 2015 และ 2017

เมื่อสร้างแอป C++ บนเดสก์ท็อปใน Windows ให้ลิงก์ Windows SDK ต่อไปนี้ ลงในโปรเจ็กต์ของคุณ ดูข้อมูลเพิ่มเติมในเอกสารประกอบของคอมไพเลอร์

ไลบรารี Firebase C++ ทรัพยากร Dependency ของไลบรารี 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) เวอร์ชัน Library มีให้ในเวอร์ชัน 64 บิต (x86_64) ที่มีการจัดการครบวงจรได้เลย นอกจากนี้ เรายังมีเฟรมเวิร์กไว้ให้เพื่อความสะดวกของคุณ

โปรดทราบว่าไลบรารี macOS ได้รับการทดสอบโดยใช้ Xcode 13.3.1

เมื่อสร้างแอป C++ บนเดสก์ท็อปใน macOS ให้ลิงก์รายการต่อไปนี้กับโปรเจ็กต์ของคุณ

  • ไลบรารีระบบ pthread รายการ
  • เฟรมเวิร์กของระบบ macOS CoreFoundation
  • เฟรมเวิร์กของระบบ macOS Foundation
  • เฟรมเวิร์กของระบบ macOS Security
  • เฟรมเวิร์กของระบบ macOS GSS
  • เฟรมเวิร์กของระบบ macOS Kerberos
  • เฟรมเวิร์กของระบบ macOS SystemConfiguration

ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของคอมไพเลอร์

ไลบรารี Linux

สำหรับ Linux เวอร์ชันไลบรารีมีให้สำหรับ 32 บิต (i386) และ 64 บิต (x86_64) ใหม่

โปรดทราบว่าไลบรารี Linux ได้รับการทดสอบโดยใช้ GCC 4.8.0, GCC 7.2.0 และ Clang 5.0 บน Ubuntu

เมื่อสร้างแอป C++ บนเดสก์ท็อปบน Linux ให้ลิงก์ไลบรารีระบบของ pthread กับ โปรเจ็กต์ของคุณ ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของคอมไพเลอร์ ถ้า คุณกำลังสร้างด้วย GCC 5 ขึ้นไป ให้กำหนด -D_GLIBCXX_USE_CXX11_ABI=0

ขั้นตอนถัดไป