Catch up on highlights from Firebase at Google I/O 2023. Learn more

เพิ่ม Firebase ให้กับโปรเจ็กต์ C++ ของคุณ

เพิ่มพลังให้กับเกม C++ ของคุณด้วย SDK ของ Firebase C++ ซึ่งมีอินเทอร์เฟซ C++ ที่ด้านบนของ Firebase SDK

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

ค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มพลังให้กับเกมของคุณด้วย Firebase ที่ หน้าเกม Firebase ของเรา

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

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

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

    • Xcode 13.3.1 หรือใหม่กว่า
    • CocoaPods 1.10.0 หรือใหม่กว่า
  • ตรวจสอบให้แน่ใจว่าโครงการของคุณกำหนดเป้าหมายเวอร์ชันแพลตฟอร์มต่อไปนี้หรือใหม่กว่า:

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

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

ขั้นตอนที่ 2 : สร้างโครงการ Firebase

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

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

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

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

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

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

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

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

  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 ในที่ที่สะดวก

    Firebase C++ SDK ไม่ใช่แพลตฟอร์มเฉพาะ แต่มีไลบรารีเฉพาะแพลตฟอร์ม

  2. เพิ่ม พ็ อด Firebase จาก SDK ที่คลายซิป

    1. สร้าง Podfile หากคุณยังไม่มี:

      cd your-app-directory
      pod init

    2. ใน Podfile ของคุณ ให้เพิ่มพ็อด Firebase ที่คุณต้องการใช้ในแอปของคุณ

      เปิดใช้งานการวิเคราะห์แล้ว

      # 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. ติดตั้งพ็อด จากนั้นเปิดไฟล์ .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

ห้องสมุดที่มีอยู่

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

ไลบรารีที่มีอยู่สำหรับแพลตฟอร์ม Apple

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

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

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

ผลิตภัณฑ์ Firebase เฟรมเวิร์กและพ็อด
AdMob (จำเป็น) firebase.framework
firebase_admob.framework
(จำเป็น) firebase_analytics.framework

pod 'FirebaseAdMob', '10.9.0'
(จำเป็น) pod 'FirebaseAnalytics', '10.9.0'
การวิเคราะห์ (จำเป็น) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '10.9.0'
ตรวจสอบแอป (จำเป็น) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '10.9.0'
การรับรองความถูกต้อง (จำเป็น) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '10.9.0'
Cloud Firestore (จำเป็น) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '10.9.0'
pod 'FirebaseAuth', '10.9.0'
ฟังก์ชั่นคลาวด์ (จำเป็น) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '10.9.0'
การส่งข้อความบนคลาวด์ (จำเป็น) firebase.framework
firebase_messaging.framework
(แนะนำ) firebase_analytics.framework

pod 'FirebaseMessaging', '10.9.0'
(แนะนำ) pod 'FirebaseAnalytics', '10.9.0'
การจัดเก็บเมฆ (จำเป็น) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '10.9.0'
ลิงค์แบบไดนามิก (จำเป็น) firebase.framework
firebase_dynamic_links.framework
(แนะนำ) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '10.9.0'
(แนะนำ) pod 'FirebaseAnalytics', '10.9.0'
ฐานข้อมูลเรียลไทม์ (จำเป็น) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '10.9.0'
การกำหนดค่าระยะไกล (จำเป็น) firebase.framework
firebase_remote_config.framework
(แนะนำ) firebase_analytics.framework

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

ข้อมูลเพิ่มเติมสำหรับการตั้งค่ามือถือ

วิธีการหมุนวน

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

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

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

เมื่อคุณสร้างเกม มักจะง่ายกว่ามากในการทดสอบเกมของคุณบนแพลตฟอร์มเดสก์ท็อปก่อน แล้วจึงปรับใช้และทดสอบบนอุปกรณ์พกพาในภายหลังในการพัฒนา เพื่อสนับสนุนเวิร์กโฟลว์นี้ เรามี ชุดย่อยของ Firebase C++ SDK ซึ่งสามารถทำงานบน 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 ของคุณเป็นตำแหน่งของ 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)
ตรวจสอบแอป firebase_app_check
(จำเป็น) firebase_app
การรับรองความถูกต้อง firebase_auth
(จำเป็น) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
ฟังก์ชั่นคลาวด์ firebase_functions
(จำเป็น) firebase_app
การจัดเก็บเมฆ firebase_storage
(จำเป็น) firebase_app
ฐานข้อมูลเรียลไทม์ firebase_database
(จำเป็น) firebase_app
การกำหนดค่าระยะไกล firebase_remote_config
(จำเป็น) firebase_app

Firebase ให้ไลบรารี่เดสก์ท็อปที่เหลือเป็นการใช้งานแบบ stub (ไม่ทำงาน) เพื่อความสะดวกเมื่อสร้างสำหรับ Windows, macOS และ Linux ดังนั้น คุณไม่จำเป็นต้องคอมไพล์โค้ดแบบมีเงื่อนไขเพื่อกำหนดเป้าหมายเดสก์ท็อป

เดสก์ท็อปฐานข้อมูลเรียลไทม์

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++ การพึ่งพาไลบรารี Windows SDK
ตรวจสอบแอป advapi32, ws2_32, crypt32
การรับรองความถูกต้อง advapi32, ws2_32, crypt32
Cloud Firestore 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 (Darwin) เวอร์ชันไลบรารีมีให้สำหรับแพลตฟอร์ม 64 บิต (x86_64) มีกรอบการทำงานเพื่อความสะดวกของคุณ

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

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

  • ไลบรารีระบบ pthread
  • เฟรมเวิร์กระบบ CoreFoundation macOS
  • Foundation ระบบ macOS พื้นฐาน
  • เฟรมเวิร์กระบบ Security macOS
  • เฟรมเวิร์กระบบ GSS macOS
  • เฟรมเวิร์กระบบ Kerberos macOS
  • กรอบงานระบบ SystemConfiguration macOS

ศึกษาเอกสารประกอบคอมไพเลอร์ของคุณสำหรับข้อมูลเพิ่มเติม

ไลบรารี 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

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