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

เพิ่มประสิทธิภาพให้เกม C++ ด้วย Firebase C++ SDK ซึ่งมีอินเทอร์เฟซ C++ ที่ทำงานร่วมกับ Firebase SDK

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

  3. ป้อนรหัสชุดของแอปในช่องรหัสชุด

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

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

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

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

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

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

คุณตั้งค่างานในคอนโซล Firebase เสร็จแล้ว ดำเนินการต่อเพื่อเพิ่ม Firebase C++ SDK ด้านล่าง

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

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

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

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

  2. ใช้ Swift Package Manager เพื่อติดตั้งและจัดการทรัพยากร Dependency ของ Firebase Apple Platforms SDK

    1. ใน Xcode ขณะที่โปรเจ็กต์แอปเปิดอยู่ ให้ไปที่ไฟล์ > เพิ่มทรัพยากร Dependency ของแพ็กเกจ

    2. เมื่อได้รับข้อความแจ้ง ให้เพิ่มที่เก็บ SDK ของ Firebase สำหรับแพลตฟอร์ม Apple ดังนี้

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

    3. สำหรับกฎการขึ้นต่อกัน ให้เลือกเวอร์ชันที่แน่นอน แล้วป้อน 13.1.1

    4. เลือกไลบรารี Firebase ที่ต้องการใช้ในแอป (เช่น FirebaseAuth และ FirebaseDatabase) หากเปิดใช้ Google Analytics ในโปรเจ็กต์ Firebase ให้เพิ่ม FirebaseAnalytics ด้วย

    เมื่อเสร็จแล้ว Xcode จะเริ่มแก้ไขและดาวน์โหลดทรัพยากร Dependency ในเบื้องหลังโดยอัตโนมัติ

  3. เพิ่ม XCFrameworks ของ Firebase จากไดเรกทอรี xcframeworks ของ SDK ที่แตกไฟล์แล้ว

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

    1. เพิ่ม Firebase C++ XCFramework firebase.xcframework ซึ่งจำเป็นสำหรับการใช้ผลิตภัณฑ์ Firebase

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

  4. กลับไปที่คอนโซล Firebase ในเวิร์กโฟลว์การตั้งค่า ให้คลิกถัดไป

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

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

เรียบร้อยแล้ว ลงทะเบียนและกำหนดค่าแอป C++ ให้ใช้ผลิตภัณฑ์ Firebase แล้ว

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

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

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

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

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

ผลิตภัณฑ์ 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

หากไม่ต้องการใช้ Swift Package Manager เพื่อจัดการทรัพยากร Dependency ของ SDK สำหรับแพลตฟอร์ม Apple ของ Firebase ที่เกี่ยวข้อง โปรดดูหัวข้อผสานรวมโดยไม่ใช้ Swift Package Manager ในคู่มือการตั้งค่าแพลตฟอร์ม Apple เพื่อดูตัวเลือกการผสานรวมอื่นๆ

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

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

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

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

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

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

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

    • หากคุณเพิ่มไฟล์ google-services.json ของ Android - เมื่อคุณเรียกใช้แอป 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. เพิ่ม 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 Firebase C++ มีการรองรับเวิร์กโฟลว์บนเดสก์ท็อปสำหรับฟีเจอร์บางส่วน ซึ่งช่วยให้ใช้ 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 มีไลบรารีเดสก์ท็อปที่เหลือเป็นการติดตั้งใช้งาน Stub (ไม่ทำงาน) เพื่อความสะดวกเมื่อสร้างสำหรับ Windows, macOS และ Linux ดังนั้น คุณจึงไม่จำเป็นต้องคอมไพล์โค้ดแบบมีเงื่อนไขเพื่อกำหนดเป้าหมายเป็นเดสก์ท็อป

เดสก์ท็อป Realtime Database

SDK Realtime Database สำหรับเดสก์ท็อปใช้ REST เพื่อเข้าถึงฐานข้อมูลของคุณ ดังนั้นคุณต้องประกาศดัชนีที่ใช้กับ Query::OrderByChild() บนเดสก์ท็อป มิฉะนั้น Listener จะทำงานไม่สำเร็จ

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

ไลบรารีของ Windows

สำหรับ Windows ระบบจะระบุเวอร์ชันของไลบรารีตามข้อมูลต่อไปนี้

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

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

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

เมื่อสร้างแอป 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

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