Catch up on everthing we announced at this year's Firebase Summit. Learn more

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

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

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

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

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

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

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

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

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

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

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

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

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

หลังจากที่คุณมีโปรเจ็กต์ Firebase แล้ว คุณสามารถเพิ่มแอป Apple ลงไปได้

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

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

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

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

  3. ใส่รหัสชุดของแอปในฟิลด์รหัสชุด

  4. (อุปกรณ์เสริม) ป้อนข้อมูลตรวจสอบอื่น ๆ : ชื่อเล่น App และ App Store ID

  5. คลิกแอปสมัครสมาชิก

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

  1. คลิกดาวน์โหลด GoogleService-Info.plist ที่จะได้รับไฟล์ของคุณแพลตฟอร์มแอปเปิ้ล Firebase การตั้งค่า

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

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

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

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

ขั้นตอนในส่วนนี้เป็นตัวอย่างของวิธีการเพิ่ม ผลิตภัณฑ์ 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 Pod ที่คุณต้องการใช้ในแอปของคุณ

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

      # Add the Firebase pod for Google Analytics
      pod 'Firebase/Analytics'
      # 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 'Firebase/Auth' pod 'Firebase/Database'

      ไม่ได้เปิดใช้งานการวิเคราะห์

      # 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 'Firebase/Auth'
      pod 'Firebase/Database'
    3. ติดตั้งฝักแล้วเปิด .xcworkspace แฟ้มใน Xcode

      pod install
      open your-app.xcworkspace

  3. เพิ่ม Firebase กรอบ จาก SDK ซิป

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

    1. เพิ่ม Firebase c ++ กรอบ firebase.framework ซึ่งเป็นสิ่งจำเป็นที่จะใช้ผลิตภัณฑ์ Firebase ใด ๆ

    2. เพิ่มเฟรมเวิร์กสำหรับผลิตภัณฑ์ Firebase แต่ละรายการที่คุณต้องการใช้ ตัวอย่างเช่นการใช้การตรวจสอบสิทธิ์ Firebase เพิ่ม firebase_auth.framework

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

  5. หากคุณเพิ่ม 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 'Firebase/AdMob', '8.9.1'
(จำเป็น) pod 'Firebase/Analytics', '8.9.1'
การวิเคราะห์ (จำเป็น) firebase.framework
firebase_analytics.framework

pod 'Firebase/Analytics', '8.9.1'
การตรวจสอบสิทธิ์ (จำเป็น) firebase.framework
firebase_auth.framework

pod 'Firebase/Auth', '8.9.1'
Cloud Firestore (จำเป็น) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'Firebase/Firestore', '8.9.1'
pod 'Firebase/Auth', '8.9.1'
ฟังก์ชั่นคลาวด์ (จำเป็น) firebase.framework
firebase_functions.framework

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

pod 'Firebase/Messaging', '8.9.1'
(แนะนำ) pod 'Firebase/Analytics', '8.9.1'
การจัดเก็บเมฆ (จำเป็น) firebase.framework
firebase_storage.framework

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

pod 'Firebase/DynamicLinks', '8.9.1'
(แนะนำ) pod 'Firebase/Analytics', '8.9.1'
ฐานข้อมูลเรียลไทม์ (จำเป็น) firebase.framework
firebase_database.framework

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

pod 'Firebase/RemoteConfig', '8.9.1'
(แนะนำ) pod 'Firebase/Analytics', '8.9.1'

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

วิธีการ ฉวัดเฉวียน

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

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

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

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

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

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

    • หากคุณเพิ่ม Android google-services.json ไฟล์ - เมื่อคุณเรียกใช้แอปของคุณ Firebase ตั้งไฟล์มือถือนี้แล้วโดยอัตโนมัติสร้างเดสก์ทอป Firebase ไฟล์ config ( google-services-desktop.json )

    • หากคุณเพิ่ม iOS GoogleService-Info.plist ไฟล์ - ก่อนที่จะใช้แอปของคุณคุณจะต้องแปลงไฟล์มือถือนี้ไปยังเดสก์ทอป Firebase ไฟล์ config ในการแปลงไฟล์เรียกใช้คำสั่งต่อไปนี้จากไดเรกทอรีเดียวกันกับของคุณ GoogleService-Info.plist ไฟล์:

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

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

  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_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 ที่ฐานข้อมูลเรียลไทม์สำหรับเดสก์ทอปของใช้ส่วนที่เหลือในการเข้าถึงฐานข้อมูลของคุณดังนั้นคุณจะต้อง ประกาศดัชนี ที่คุณใช้กับ 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 12

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

  • pthread ระบบห้องสมุด
  • CoreFoundation กรอบระบบ MacOS
  • Foundation กรอบระบบ MacOS
  • Security ระบบกรอบ MacOS
  • GSS กรอบระบบ MacOS
  • Kerberos กรอบระบบ MacOS
  • SystemConfiguration กรอบระบบ MacOS

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

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

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

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