เพิ่ม Firebase ให้กับโปรเจ็กต์ C++ ของคุณ
เพิ่มพลังให้กับเกม C++ ของคุณด้วย Firebase C++ SDK ซึ่งมีอินเทอร์เฟซ C++ ที่ด้านบนของ Firebase สำหรับ iOS และสำหรับ Android
เข้าถึง Firebase ทั้งหมดจากโค้ด C++ ของคุณ โดยไม่ต้องเขียนโค้ดสำหรับแพลตฟอร์ม นอกจากนี้ Firebase SDK ยังแปลสำนวนเฉพาะภาษาจำนวนมากที่ใช้โดย Firebase เป็นอินเทอร์เฟซที่นักพัฒนา C++ คุ้นเคยมากขึ้น
ค้นหาข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มพลังให้เกมของคุณด้วย Firebase ที่ หน้าเกม Firebase ของเรา
เพิ่ม Firebase ในโครงการ C ++ แล้วหรือยัง ตรวจสอบให้แน่ใจว่าคุณใช้ Firebase C++ SDK เวอร์ชัน ล่าสุด
ข้อกำหนดเบื้องต้น
ติดตั้งสิ่งต่อไปนี้:
- Xcode 13.3.1 หรือใหม่กว่า
- CocoaPods 1.10.0 หรือใหม่กว่า
ตรวจสอบให้แน่ใจว่าโปรเจ็กต์ของคุณกำหนดเป้าหมายเป็นเวอร์ชันแพลตฟอร์มต่อไปนี้หรือใหม่กว่า:
- iOS 10
ตั้งค่าอุปกรณ์ iOS จริงหรือใช้เครื่องจำลอง iOS เพื่อเรียกใช้แอปของคุณ
สำหรับ Cloud Messaging บนแพลตฟอร์ม Apple มีข้อกำหนดเบื้องต้นดังต่อไปนี้:
- ตั้งค่า อุปกรณ์ Apple จริง
- รับคีย์การตรวจสอบสิทธิ์การแจ้งเตือนแบบพุชของ Apple สำหรับบัญชีนักพัฒนา Apple ของคุณ
- เปิดใช้งาน Push Notifications ใน Xcode ภายใต้ App > Capabilities
ลงชื่อเข้าใช้ Firebase โดยใช้บัญชี Google ของคุณ
ขั้นตอนที่ 2 : สร้างโปรเจ็กต์ Firebase
ก่อนที่คุณจะเพิ่ม Firebase ลงในโปรเจ็กต์ C++ คุณต้องสร้างโปรเจ็กต์ Firebase เพื่อเชื่อมต่อกับโปรเจ็กต์ C++ ไปที่ ทำความเข้าใจโปรเจ็กต์ Firebase เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับโปรเจ็กต์ Firebase
ขั้นตอนที่ 3 : ลงทะเบียนแอปของคุณด้วย Firebase
หากต้องการใช้ Firebase ในแอป Apple คุณต้องลงทะเบียนแอปกับโปรเจ็กต์ Firebase การลงทะเบียนแอพของคุณมักจะเรียกว่า "การเพิ่ม" แอพของคุณในโครงการของคุณ
ไปที่ คอนโซล Firebase
ที่ตรงกลางหน้าภาพรวมโครงการ ให้คลิกไอคอน iOS+ เพื่อเปิดเวิร์กโฟลว์การตั้งค่า
หากคุณได้เพิ่มแอปลงในโปรเจ็กต์ Firebase แล้ว ให้คลิก เพิ่มแอป เพื่อแสดงตัวเลือกแพลตฟอร์ม
ป้อนรหัสชุดของแอปในช่อง รหัสชุด ข้อมูล
ID บันเดิ ลจะระบุแอปพลิเคชันในระบบนิเวศของ Apple โดยไม่ซ้ำกัน
ค้นหารหัสบันเดิลของคุณ: เปิดโปรเจ็กต์ของคุณใน Xcode เลือกแอประดับบนสุดในตัวนำทางโปรเจ็กต์ จากนั้นเลือกแท็บ ทั่วไป
ค่าของฟิลด์ Bundle Identifier คือ ID บันเดิล (เช่น
com.yourcompany.yourproject
)โปรดทราบว่าค่ารหัสชุดจะคำนึงถึงขนาดตัวพิมพ์ และไม่สามารถเปลี่ยนแปลงได้สำหรับแอป Firebase นี้หลังจากที่ลงทะเบียนกับโปรเจ็กต์ Firebase แล้ว
(ไม่บังคับ) ป้อนข้อมูลแอปอื่นๆ: ชื่อเล่น แอป และ ID App Store
ชื่อเล่นของแอป : ตัวระบุความสะดวกภายในที่มีคุณเท่านั้นที่เห็นในคอนโซล Firebase
App Store ID : ใช้โดย Firebase Dynamic Links เพื่อ เปลี่ยนเส้นทางผู้ใช้ไปยังหน้า App Store ของคุณ และโดย Google Analytics เพื่อ นำเข้าเหตุการณ์ Conversion เข้าสู่ Google Ads หากแอปของคุณยังไม่มี App Store ID คุณสามารถเพิ่ม ID ได้ในภายหลังใน การตั้งค่าโครงการ
คลิก ลงทะเบียนแอป
ขั้นตอนที่ 4 : เพิ่มไฟล์การกำหนดค่า Firebase
คลิก ดาวน์โหลด GoogleService-Info.plist เพื่อรับไฟล์กำหนดค่าแพลตฟอร์ม Firebase Apple ของคุณ
ไฟล์กำหนดค่า Firebase มีตัวระบุที่ไม่ซ้ำแต่ไม่เป็นความลับสำหรับโปรเจ็กต์ของคุณ หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์กำหนดค่านี้ โปรดไปที่ ทำความเข้าใจโปรเจ็กต์ Firebase
คุณดาวน์โหลด ไฟล์กำหนดค่า Firebase อีกครั้งได้ทุกเมื่อ
ตรวจสอบให้แน่ใจว่าชื่อไฟล์ปรับแต่งไม่ได้ต่อท้ายด้วยอักขระเพิ่มเติม เช่น
(2)
เปิดโปรเจ็กต์ 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
ใน Podfile ของคุณ ให้เพิ่ม Firebase Pod ที่คุณต้องการใช้ในแอปของคุณ
เปิดใช้งานการวิเคราะห์
# 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'
ติดตั้งพ็อด จากนั้นเปิดไฟล์ .
.xcworkspace
ใน Xcodepod install
open your-app.xcworkspace
เพิ่ม เฟรมเวิ ร์ก Firebase จาก SDK ที่คลายซิป
วิธีที่ง่ายที่สุดในการเพิ่มเฟรมเวิร์กเหล่านี้คือลากจากหน้าต่าง
Finder
ไปยังบานหน้าต่าง Project Navigator ของ Xcode โดยตรง (โดยค่าเริ่มต้นจะเป็นแผงด้านซ้ายสุด หรือคลิกไอคอนไฟล์ที่ด้านบนซ้ายของ Xcode)เพิ่มเฟรมเวิร์ก Firebase C++
firebase.framework
ซึ่ง จำเป็น สำหรับการใช้ผลิตภัณฑ์ Firebaseเพิ่มเฟรมเวิร์กสำหรับผลิตภัณฑ์ Firebase แต่ละรายการที่คุณต้องการใช้ ตัวอย่างเช่น หากต้องการใช้ Firebase Authentication ให้เพิ่ม
firebase_auth.framework
กลับไปที่คอนโซล Firebase ในเวิร์กโฟลว์การตั้งค่า คลิก ถัดไป
หากคุณเพิ่ม Analytics ให้เรียกใช้แอปเพื่อส่งการยืนยันไปยัง Firebase ว่าคุณผสานรวม Firebase สำเร็จแล้ว มิฉะนั้น คุณสามารถข้ามขั้นตอนการยืนยันนี้ได้
บันทึกอุปกรณ์ของคุณจะแสดงการตรวจสอบ Firebase ว่าการเริ่มต้นเสร็จสมบูรณ์ หากคุณรันแอปบนอีมูเลเตอร์ที่มีการเข้าถึงเครือข่าย คอนโซล Firebase จะแจ้งให้คุณทราบว่าการเชื่อมต่อแอปของคุณเสร็จสมบูรณ์
คุณทุกชุด! แอป C++ ของคุณลงทะเบียนและกำหนดค่าให้ใช้ผลิตภัณฑ์ Firebase แล้ว
ห้องสมุดที่มีอยู่
เรียนรู้เพิ่มเติมเกี่ยวกับไลบรารี C++ Firebase ใน เอกสารอ้างอิง และในการเปิดตัว SDK โอเพ่นซอร์สของเราบน GitHub
ไลบรารีที่พร้อมใช้งานสำหรับ iOS
โปรดทราบว่าไลบรารี C++ สำหรับ Android จะแสดงอยู่ใน เวอร์ชัน Android ของหน้าการตั้งค่านี้
ผลิตภัณฑ์ Firebase แต่ละผลิตภัณฑ์มีการพึ่งพาที่แตกต่างกัน อย่าลืมเพิ่มการพึ่งพาที่ระบุไว้ทั้งหมดสำหรับผลิตภัณฑ์ Firebase ที่ต้องการไปยังโปรเจ็กต์ Podfile และ C++ ของคุณ
ผลิตภัณฑ์ Firebase | กรอบงานและพ็อด |
---|---|
AdMob | (จำเป็น) firebase.framework firebase_admob.framework (จำเป็น) firebase_analytics.framework pod 'FirebaseAdMob', '9.1.0' (จำเป็น) pod 'FirebaseAnalytics', '9.1.0' |
การวิเคราะห์ | (จำเป็น) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '9.1.0' |
การตรวจสอบสิทธิ์ | (จำเป็น) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '9.1.0' |
Cloud Firestore | (จำเป็น) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '9.1.0' pod 'FirebaseAuth', '9.1.0' |
ฟังก์ชั่นคลาวด์ | (จำเป็น) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '9.1.0' |
การส่งข้อความบนคลาวด์ | (จำเป็น) firebase.framework firebase_messaging.framework (แนะนำ) firebase_analytics.framework pod 'FirebaseMessaging', '9.1.0' (แนะนำ) pod 'FirebaseAnalytics', '9.1.0' |
การจัดเก็บเมฆ | (จำเป็น) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '9.1.0' |
ลิงก์แบบไดนามิก | (จำเป็น) firebase.framework firebase_dynamic_links.framework (แนะนำ) firebase_analytics.framework pod 'FirebaseDynamicLinks', '9.1.0' (แนะนำ) pod 'FirebaseAnalytics', '9.1.0' |
ฐานข้อมูลเรียลไทม์ | (จำเป็น) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '9.1.0' |
การกำหนดค่าระยะไกล | (จำเป็น) firebase.framework firebase_remote_config.framework (แนะนำ) firebase_analytics.framework pod 'FirebaseRemoteConfig', '9.1.0' (แนะนำ) pod 'FirebaseAnalytics', '9.1.0' |
ข้อมูลเพิ่มเติมสำหรับการตั้งค่ามือถือ
วิธีการ ฉวัดเฉวียน
บน iOS เหตุการณ์ของแอปพลิเคชันบางอย่าง (เช่น URL การเปิดและการรับการแจ้งเตือน) กำหนดให้ผู้รับมอบสิทธิ์แอปพลิเคชันของคุณใช้วิธีการเฉพาะ ตัวอย่างเช่น การรับการแจ้งเตือนอาจต้องการให้ตัวแทนแอปพลิเคชันของคุณใช้งาน application:didReceiveRemoteNotification:
เนื่องจากแอปพลิเคชัน iOS แต่ละรายการมีผู้รับมอบสิทธิ์แอปของตัวเอง Firebase จึงใช้ วิธีการ swizzling ซึ่งอนุญาตให้แทนที่วิธีหนึ่งกับอีกวิธีหนึ่ง เพื่อแนบตัวจัดการของตัวเองนอกเหนือจากที่คุณอาจนำไปใช้
ไลบรารี Dynamic Links และ Cloud Messaging จำเป็นต้องแนบตัวจัดการเข้ากับผู้รับมอบสิทธิ์ของแอปพลิเคชันโดยใช้วิธีการวนซ้ำ หากคุณกำลังใช้ผลิตภัณฑ์ Firebase ใดๆ เหล่านี้ ณ เวลาที่โหลด Firebase จะระบุคลาส AppDelegate
ของคุณและสลับเมธอดที่จำเป็นลงไป โดยเชื่อมโยงการเรียกกลับไปยังการใช้งานเมธอดที่มีอยู่ของคุณ
ตั้งค่าเวิร์กโฟลว์เดสก์ท็อป ( เบต้า )
เมื่อคุณสร้างเกม การทดสอบเกมของคุณบนแพลตฟอร์มเดสก์ท็อปก่อนนั้นมักจะง่ายกว่ามาก จากนั้นปรับใช้และทดสอบบนอุปกรณ์พกพาในการพัฒนาในภายหลัง เพื่อรองรับเวิร์กโฟลว์นี้ เราจัดเตรียม ชุดย่อยของ Firebase C++ SDK ซึ่งสามารถทำงานบน Windows, macOS, Linux และจากภายในตัวแก้ไข C++
สำหรับเวิร์กโฟลว์เดสก์ท็อป คุณต้องดำเนินการดังต่อไปนี้:
- กำหนดค่าโครงการ C ++ ของคุณสำหรับ CMake
- สร้างโปรเจ็กต์ Firebase
- ลงทะเบียนแอปของคุณ (iOS หรือ Android) ด้วย Firebase
- เพิ่มไฟล์การกำหนดค่า Firebase ของแพลตฟอร์มมือถือ
สร้างไฟล์การกำหนดค่า 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 เพื่อเรียนรู้เพิ่มเติมเกี่ยวกับไฟล์กำหนดค่า
เพิ่ม Firebase SDK ให้กับโปรเจ็กต์ C++
ขั้นตอนด้านล่างเป็นตัวอย่างของวิธีเพิ่ม ผลิตภัณฑ์ Firebase ที่รองรับ ลงในโปรเจ็กต์ C++ ในตัวอย่างนี้ เราจะพูดถึงการเพิ่ม Firebase Authentication และ Firebase Realtime Database
ตั้งค่าตัวแปรสภาพแวดล้อม
FIREBASE_CPP_SDK_DIR
เป็นตำแหน่งของ Firebase C++ SDK ที่คลายซิปในไฟล์
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}")
เรียกใช้แอป C++ ของคุณ
ไลบรารีที่พร้อมใช้งาน (เดสก์ท็อป)
Firebase C++ SDK มี การรองรับเวิร์กโฟลว์เดสก์ท็อป สำหรับชุดย่อยของฟีเจอร์ ซึ่งช่วยให้บางส่วนของ Firebase ใช้ในเดสก์ท็อปแบบสแตนด์อโลนบน Windows, macOS และ Linux
ผลิตภัณฑ์ Firebase | การอ้างอิงไลบรารี (โดยใช้ CMake) |
---|---|
การตรวจสอบสิทธิ์ | 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 ดังนั้น คุณไม่จำเป็นต้องคอมไพล์โค้ดแบบมีเงื่อนไขเพื่อกำหนดเป้าหมายเดสก์ท็อป
เดสก์ท็อปฐานข้อมูลเรียลไทม์
Realtime Database SDK สำหรับเดสก์ท็อปใช้ REST เพื่อเข้าถึงฐานข้อมูลของคุณ ดังนั้นคุณต้อง ประกาศดัชนี ที่คุณใช้กับ Query::OrderByChild()
บนเดสก์ท็อป ไม่เช่นนั้นผู้ฟังของคุณจะล้มเหลว
ข้อมูลเพิ่มเติมสำหรับการตั้งค่าเดสก์ท็อป
ไลบรารีของ Windows
สำหรับ Windows เวอร์ชันไลบรารีมีให้ตามรายการต่อไปนี้:
- สร้างแพลตฟอร์ม: โหมด 32 บิต (x86) กับ 64 บิต (x64)
- สภาพแวดล้อมรันไทม์ของ Windows: Multithreaded / MT เทียบกับ Multithreaded DLL /MD
- เป้าหมาย: ปล่อย vs Debug
โปรดทราบว่าไลบรารีต่อไปนี้ได้รับการทดสอบโดยใช้ Visual Studio 2015 และ 2017
เมื่อสร้างแอปเดสก์ท็อป C++ บน Windows ให้เชื่อมโยงไลบรารี Windows SDK ต่อไปนี้กับโครงการของคุณ ศึกษาเอกสารประกอบคอมไพเลอร์ของคุณสำหรับข้อมูลเพิ่มเติม
ไลบรารี Firebase C++ | การพึ่งพาไลบรารี Windows SDK |
---|---|
การตรวจสอบสิทธิ์ | 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 (ดาร์วิน) เวอร์ชันไลบรารีมีให้สำหรับแพลตฟอร์ม 64 บิต (x86_64) กรอบการทำงานยังมีให้เพื่อความสะดวกของคุณ
โปรดทราบว่าไลบรารี macOS ได้รับการทดสอบโดยใช้ Xcode 13.3.1
เมื่อสร้างแอปเดสก์ท็อป C++ บน macOS ให้เชื่อมโยงสิ่งต่อไปนี้กับโครงการของคุณ:
- ไลบรารีระบบ
pthread
- เฟรมเวิร์กระบบ
CoreFoundation
macOS - เฟรมเวิร์กระบบ
Foundation
ของ macOS - กรอบงานระบบ
Security
macOS - กรอบงานระบบ
GSS
macOS - เฟรมเวิร์กระบบ
Kerberos
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
ขั้นตอนถัดไป
สำรวจ ตัวอย่างแอป Firebase
สำรวจ SDK โอเพ่นซอร์สใน GitHub
เตรียมเปิดแอปของคุณ:
- ตั้งค่า การแจ้งเตือนงบประมาณ สำหรับโครงการของคุณใน Google Cloud Console
- ตรวจสอบ แดชบอร์ด การใช้งานและการเรียกเก็บเงิน ในคอนโซล Firebase เพื่อดูภาพรวมการใช้งานโปรเจ็กต์ของคุณในบริการ Firebase ที่หลากหลาย
- ตรวจ สอบรายการตรวจสอบการเปิดตัว Firebase