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

    • ไอโอเอส 11
    • ทีวีโอเอส 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

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

ไลบรารีลิงก์แบบไดนามิกและ Cloud Messaging จำเป็นต้องแนบตัวจัดการกับผู้รับมอบสิทธิ์แอปพลิเคชันโดยใช้วิธี Swizzling หากคุณกำลังใช้ผลิตภัณฑ์ 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
คลาวด์ไฟร์สโตร์ 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 ดังนั้นคุณไม่จำเป็นต้องคอมไพล์โค้ดแบบมีเงื่อนไขเพื่อกำหนดเป้าหมายเดสก์ท็อป

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

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

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

ไลบรารี Windows

สำหรับ Windows เวอร์ชันไลบรารีมีให้ตามสิ่งต่อไปนี้:

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

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

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

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

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

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

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

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

ไลบรารีลินุกซ์

สำหรับ 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

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