เพิ่มศักยภาพให้กับเกม 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 11
- TVOS 12
ตั้งค่าอุปกรณ์จริงหรือใช้เครื่องจำลองเพื่อเรียกใช้แอป
ลงชื่อเข้าใช้ Firebase โดยใช้บัญชี Google
ขั้นตอนที่ 2: สร้างโปรเจ็กต์ Firebase
ก่อนที่จะเพิ่ม Firebase ไปยังโปรเจ็กต์ C++ ได้ คุณต้องสร้างโปรเจ็กต์ Firebase เพื่อเชื่อมต่อกับโปรเจ็กต์ C++ ไปที่ทำความเข้าใจโปรเจ็กต์ Firebase เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับโปรเจ็กต์ Firebase
ขั้นตอนที่ 3: ลงทะเบียนแอปกับ Firebase
หากต้องการใช้ Firebase ในแอป Apple คุณต้องลงทะเบียนแอปกับโปรเจ็กต์ Firebase การลงทะเบียนแอปมักเรียกว่า "การเพิ่ม" แอปลงในโปรเจ็กต์
ไปที่คอนโซล Firebase
ที่ตรงกลางของหน้าภาพรวมโปรเจ็กต์ ให้คลิกไอคอน iOS+ เพื่อเปิดเวิร์กโฟลว์การตั้งค่า
หากคุณเพิ่มแอปลงในโปรเจ็กต์ Firebase แล้ว ให้คลิกเพิ่มแอปเพื่อแสดงตัวเลือกแพลตฟอร์ม
ป้อนรหัสชุดของแอปในช่องรหัสแพ็กเกจ
(ไม่บังคับ) ป้อนข้อมูลอื่นๆ ของแอป ได้แก่ ชื่อเล่นแอปและรหัส App Store
คลิกลงทะเบียนแอป
ขั้นตอนที่ 4: เพิ่มไฟล์การกำหนดค่า Firebase
คลิก Download GoogleService-Info.plist เพื่อรับไฟล์การกำหนดค่าแพลตฟอร์ม Firebase Apple
เปิดโปรเจ็กต์ C++ ใน IDE จากนั้นลากไฟล์การกำหนดค่าลงในรูทของโปรเจ็กต์ C++
หากได้รับข้อความแจ้ง ให้เลือกเพิ่มไฟล์การกำหนดค่าลงในเป้าหมายทั้งหมด
คุณตั้งค่างานในคอนโซล Firebase เสร็จแล้ว ไปที่ เพิ่ม Firebase C++ SDK ด้านล่าง
ขั้นตอนที่ 5: เพิ่ม Firebase C++ SDK
ขั้นตอนในส่วนนี้เป็นตัวอย่างของวิธีเพิ่มผลิตภัณฑ์ Firebase ที่รองรับไปยังโปรเจ็กต์ Firebase C++
ดาวน์โหลด Firebase C++ SDK จากนั้นแตกไฟล์ SDK ในที่ที่สะดวก
Firebase C++ SDK ไม่ได้เจาะจงแพลตฟอร์ม แต่มีไลบรารีเฉพาะแพลตฟอร์ม
เพิ่มพ็อด Firebase จาก SDK ที่แยกไฟล์แล้ว
สร้าง Podfile หากคุณยังไม่มี:
cd your-app-directory
pod init
เพิ่มพ็อด Firebase ที่คุณต้องการใช้ในแอปลงใน Podfile
เปิดใช้ 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'
ติดตั้งพ็อด แล้วเปิดไฟล์
.xcworkspace
ใน Xcodepod install
open your-app.xcworkspace
เพิ่มเฟรมเวิร์ก Firebase จาก SDK ที่แยกไฟล์แล้ว
วิธีที่ง่ายที่สุดในการเพิ่มเฟรมเวิร์กเหล่านี้คือการลากเฟรมเวิร์กจากหน้าต่าง
Finder
ไปไว้ในแผง Project Navigator ของ Xcode โดยตรง (โดยค่าเริ่มต้น แผงด้านซ้ายสุด หรือคลิกไอคอนไฟล์ที่ด้านซ้ายบนของ Xcode)เพิ่มเฟรมเวิร์ก Firebase C++
firebase.framework
ซึ่งจำเป็นในการใช้ผลิตภัณฑ์ Firebaseเพิ่มเฟรมเวิร์กสำหรับผลิตภัณฑ์ Firebase แต่ละรายการที่ต้องการใช้ เช่น หากต้องการใช้การตรวจสอบสิทธิ์ Firebase ให้เพิ่ม
firebase_auth.framework
กลับไปที่คอนโซล Firebase ในขั้นตอนการตั้งค่า แล้วคลิกถัดไป
หากคุณเพิ่ม Analytics ให้เรียกใช้แอปเพื่อส่งการยืนยันไปยัง Firebase ว่าคุณได้ผสานรวม Firebase เรียบร้อยแล้ว ไม่เช่นนั้น ให้ข้ามขั้นตอนการยืนยันนี้
บันทึกของอุปกรณ์จะแสดงการยืนยัน Firebase ที่การเริ่มต้นเสร็จสมบูรณ์แล้ว หากคุณเรียกใช้แอปในโปรแกรมจำลองที่มีสิทธิ์เข้าถึงเครือข่าย คอนโซล Firebase จะแจ้งว่าการเชื่อมต่อแอปเสร็จสมบูรณ์
เรียบร้อยแล้ว แอป C++ จะได้รับการลงทะเบียนและกำหนดค่าให้ใช้ผลิตภัณฑ์ Firebase
ไลบรารีที่ใช้ได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับไลบรารี C++ ของ Firebase ในเอกสารอ้างอิงและใน 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', '10.28.1' (ต้องระบุ) pod 'FirebaseAnalytics', '10.28.1'
|
ข้อมูลวิเคราะห์ |
(ต้องระบุ) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.28.1'
|
การตรวจสอบแอป |
(ต้องระบุ) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '10.28.1'
|
การตรวจสอบสิทธิ์ |
(ต้องระบุ) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.28.1'
|
Cloud Firestore |
(ต้องระบุ) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.28.1' pod 'FirebaseAuth', '10.28.1'
|
ฟังก์ชันระบบคลาวด์ |
(ต้องระบุ) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.28.1'
|
การรับส่งข้อความในระบบคลาวด์ |
(ต้องระบุ) firebase.framework firebase_messaging.framework (แนะนำ) firebase_analytics.framework pod 'FirebaseMessaging', '10.28.1' (แนะนำ) pod 'FirebaseAnalytics', '10.28.1'
|
พื้นที่เก็บข้อมูลระบบคลาวด์ |
(ต้องระบุ) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.28.1'
|
ลิงก์แบบไดนามิก |
(ต้องระบุ) firebase.framework firebase_dynamic_links.framework (แนะนำ) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.28.1' (แนะนำ) pod 'FirebaseAnalytics', '10.28.1'
|
ฐานข้อมูลเรียลไทม์ |
(ต้องระบุ) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.28.1'
|
การกำหนดค่าระยะไกล |
(ต้องระบุ) firebase.framework firebase_remote_config.framework (แนะนำ) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.28.1' (แนะนำ) pod 'FirebaseAnalytics', '10.28.1'
|
ข้อมูลเพิ่มเติมสำหรับการตั้งค่าอุปกรณ์เคลื่อนที่
การแลกเปลี่ยนเมธอด
ใน iOS เหตุการณ์บางอย่างของแอปพลิเคชัน (เช่น การเปิด URL และการรับการแจ้งเตือน) จำเป็นต้องได้รับมอบอำนาจแอปพลิเคชันเพื่อนำเมธอดที่เฉพาะเจาะจงไปใช้ เช่น การได้รับการแจ้งเตือนอาจกำหนดให้ผู้รับมอบอำนาจแอปพลิเคชันติดตั้งใช้งาน application:didReceiveRemoteNotification:
เนื่องจากแอปพลิเคชัน iOS แต่ละแอปมีการมอบสิทธิ์แอปของตัวเอง Firebase จึงใช้การสุ่มเมธอด ซึ่งช่วยให้แทนที่เมธอดหนึ่งด้วยอีกเมธอดหนึ่ง เพื่อแนบเครื่องจัดการของตัวเองนอกเหนือจากโค้ดที่คุณอาจใช้งานไว้
ไลบรารีลิงก์แบบไดนามิกและไลบรารี Cloud Messaging จะต้องแนบตัวแฮนเดิลกับการมอบสิทธิ์แอปพลิเคชันโดยใช้เมธอด Method หากคุณใช้ผลิตภัณฑ์ Firebase เหล่านี้อยู่ ขณะโหลด Firebase จะระบุคลาส AppDelegate
และนำเมธอดที่จำเป็นมารวมเข้าด้วยกัน โดยเชื่อมโยงการเรียกกลับไปยังการใช้งานเมธอดที่มีอยู่
ตั้งค่าเวิร์กโฟลว์บนเดสก์ท็อป (เบต้า)
เมื่อคุณสร้างเกม การทดสอบเกมบนแพลตฟอร์มเดสก์ท็อปก่อนนั้นทำได้ง่ายกว่ามาก จากนั้นจึงติดตั้งใช้งานและทดสอบบนอุปกรณ์เคลื่อนที่ในภายหลังในช่วงการพัฒนา เรามีชุดย่อยของ Firebase C++ SDK ที่สามารถทำงานบน Windows, macOS, Linux และในตัวแก้ไข C++ เพื่อสนับสนุนเวิร์กโฟลว์นี้
สำหรับเวิร์กโฟลว์บนเดสก์ท็อป คุณต้องทำดังนี้
- กำหนดค่าโปรเจ็กต์ C++ สำหรับ CMake
- สร้างโปรเจ็กต์ Firebase
- ลงทะเบียนแอป (iOS หรือ Android) ด้วย Firebase
- เพิ่มไฟล์การกำหนดค่า Firebase ในแพลตฟอร์มอุปกรณ์เคลื่อนที่
สร้างไฟล์การกำหนดค่า Firebase เวอร์ชันเดสก์ท็อป ดังนี้
หากคุณเพิ่มไฟล์ Android
google-services.json
— เมื่อคุณเรียกใช้แอป 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 เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับไฟล์การกำหนดค่า
เพิ่ม Firebase SDK ลงในโปรเจ็กต์ C++
ขั้นตอนด้านล่างนี้เป็นตัวอย่างของวิธีเพิ่มผลิตภัณฑ์ Firebase ที่รองรับลงในโปรเจ็กต์ C++ ในตัวอย่างนี้ เราแนะนำการเพิ่มการตรวจสอบสิทธิ์ Firebase และฐานข้อมูลเรียลไทม์ของ Firebase
ตั้งค่าตัวแปรสภาพแวดล้อม
FIREBASE_CPP_SDK_DIR
เป็นตำแหน่งของ Firebase C++ SDK ที่แยกไฟล์แล้วในไฟล์
CMakeLists.txt
ของโปรเจ็กต์ ให้เพิ่มเนื้อหาต่อไปนี้ รวมถึงไลบรารีสำหรับผลิตภัณฑ์ Firebase ที่ต้องการใช้ เช่น หากต้องการใช้การตรวจสอบสิทธิ์ของ Firebase และฐานข้อมูลเรียลไทม์ของ Firebase ให้ใช้รูปแบบต่อไปนี้# 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}")
เรียกใช้แอป 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 มีไลบรารีเดสก์ท็อปที่เหลือเป็นการติดตั้งใช้งานสตับ (ใช้งานไม่ได้) เพื่อความสะดวกในการสร้างสำหรับ 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 |
การตรวจสอบสิทธิ์ | 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 |
การกำหนดค่าระยะไกล | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
ไลบรารี macOS
สำหรับ macOS (Darwin) เวอร์ชันไลบรารีมีให้ใช้งานสำหรับแพลตฟอร์ม 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
ขั้นตอนถัดไป
สำรวจตัวอย่างแอป Firebase
เตรียมเปิดตัวแอป
- ตั้งค่าการแจ้งเตือนงบประมาณสำหรับโปรเจ็กต์ในคอนโซล Google Cloud
- ตรวจสอบหน้าแดชบอร์ดการใช้งานและการเรียกเก็บเงินในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ในบริการต่างๆ ของ Firebase
- ดูรายการตรวจสอบการเปิดตัว Firebase