เพิ่ม Firebase ไปยังโปรเจ็กต์ C++

เพิ่มประสิทธิภาพเกม C++ ด้วย Firebase C++ SDK ซึ่งมีอินเทอร์เฟซ C++ บน Firebase SDK

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

ดูข้อมูลเพิ่มเติมเกี่ยวกับการเพิ่มประสิทธิภาพเกมด้วย Firebase ได้ที่หน้าเกม Firebase

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


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

  • ติดตั้งเครื่องมือแก้ไขหรือ IDE ที่ต้องการ เช่น Android Studio, IntelliJ หรือ VS Code

  • รับ Android SDK

  • ตรวจสอบว่าโปรเจ็กต์เป็นไปตามข้อกำหนดต่อไปนี้

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

    • โปรแกรมจำลองต้องใช้รูปภาพโปรแกรมจำลองกับ Google Play

    • สำหรับไลบรารี C++ บางรายการ อุปกรณ์ไคลเอ็นต์ต้องมีบริการ Google Play โปรดดูรายการในหน้านี้

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

ขั้นตอนที่ 2: สร้างโปรเจ็กต์ Firebase

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

  1. ในคอนโซล Firebase ให้คลิกเพิ่มโปรเจ็กต์

    • หากต้องการเพิ่มทรัพยากร Firebase ลงในโปรเจ็กต์ Google Cloud ที่มีอยู่ ให้ป้อนชื่อโปรเจ็กต์หรือเลือกจากเมนูแบบเลื่อนลง

    • หากต้องการสร้างโปรเจ็กต์ใหม่ ให้ป้อนชื่อโปรเจ็กต์ที่ต้องการ นอกจากนี้ คุณยังแก้ไขรหัสโปรเจ็กต์ที่แสดงใต้ชื่อโปรเจ็กต์ได้ด้วย

  2. เมื่อได้รับข้อความแจ้ง ให้อ่านและยอมรับข้อกำหนดของ Firebase

  3. คลิกต่อไป

  4. (ไม่บังคับ) ตั้งค่า Google Analytics สําหรับโปรเจ็กต์ ซึ่งจะช่วยให้คุณได้รับประสบการณ์การใช้งานผลิตภัณฑ์ Firebase ต่อไปนี้อย่างเต็มประสิทธิภาพ

    เลือกบัญชี Google Analytics ที่มีอยู่หรือสร้างบัญชีใหม่

    หากคุณสร้างบัญชีใหม่ ให้เลือกตำแหน่งการรายงาน Analytics แล้วยอมรับการตั้งค่าการแชร์ข้อมูลและข้อกำหนด Google Analytics สำหรับโปรเจ็กต์

  5. คลิกสร้างโปรเจ็กต์ (หรือเพิ่ม Firebase หากคุณใช้โปรเจ็กต์ Google Cloud ที่มีอยู่)

Firebase จะจัดสรรทรัพยากรสําหรับโปรเจ็กต์ Firebase โดยอัตโนมัติ เมื่อดำเนินการเสร็จแล้ว ระบบจะนำคุณไปยังหน้าภาพรวมของโปรเจ็กต์ Firebase ในคอนโซล Firebase

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

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

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

  2. ตรงกลางหน้าภาพรวมโปรเจ็กต์ ให้คลิกไอคอน Android () หรือเพิ่มแอปเพื่อเปิดเวิร์กโฟลว์การตั้งค่า

  3. ป้อนชื่อแพ็กเกจของแอปในช่องชื่อแพ็กเกจ Android

    • ชื่อแพ็กเกจเป็นตัวระบุที่ไม่ซ้ำของแอปในอุปกรณ์และใน Google Play Store

    • ชื่อแพ็กเกจมักเรียกว่ารหัสแอปพลิเคชัน

    • ค้นหาชื่อแพ็กเกจของแอปในไฟล์ Gradle ของโมดูล (ระดับแอป) ซึ่งมักจะเป็น app/build.gradle (ตัวอย่างชื่อแพ็กเกจ: com.yourcompany.yourproject)

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

  4. (ไม่บังคับ) ป้อนข้อมูลอื่นๆ ของแอป ได้แก่ ชื่อเล่นของแอปและใบรับรองการแก้ไขข้อบกพร่อง SHA-1

  5. คลิกลงทะเบียนแอป

ขั้นตอนที่ 4: เพิ่มไฟล์การกําหนดค่า Firebase

  1. คลิกดาวน์โหลด google-services.json เพื่อรับไฟล์การกําหนดค่า Firebase สำหรับ Android

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

    • คุณดาวน์โหลดไฟล์กำหนดค่า Firebase อีกครั้งได้ทุกเมื่อ

    • โปรดตรวจสอบว่าชื่อไฟล์การกําหนดค่าไม่มีอักขระต่อท้ายเกิน เช่น (2)

  2. เปิดโปรเจ็กต์ C++ ใน IDE แล้วเพิ่มไฟล์การกําหนดค่าลงในโปรเจ็กต์ โดยทําดังนี้

  3. (รุ่น Gradle เท่านั้น) หากต้องการเปิดใช้บริการ Firebase ในโปรเจ็กต์ C++ ให้เพิ่มปลั๊กอิน google-services ลงในไฟล์ build.gradle ระดับบนสุด

    1. เพิ่มกฎเพื่อรวมปลั๊กอิน Gradle ของบริการ Google ตรวจสอบว่าคุณมีที่เก็บ Maven ของ Google ด้วย

        buildscript {
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
          }
      
          dependencies {
            // ...
      
            // Add the following lines:
            classpath 'com.google.gms:google-services:4.4.2'  // Google Services plugin
            implementation 'com.google.android.gms:18.5.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. ใช้ปลั๊กอิน Gradle ของบริการของ Google โดยทำดังนี้

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. การตั้งค่าในคอนโซล Firebase เสร็จแล้ว ดำเนินการต่อเพื่อเพิ่ม Firebase C++ SDK ด้านล่าง

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

ขั้นตอนในส่วนนี้เป็นตัวอย่างวิธีเพิ่มผลิตภัณฑ์ Firebase ที่รองรับลงในโปรเจ็กต์ Firebase C++

  1. ดาวน์โหลด Firebase C++ SDK แล้วแตกไฟล์ SDK ไว้ที่ใดก็ได้ที่คุณสะดวก

    SDK Firebase C++ ไม่ได้ออกแบบมาเพื่อแพลตฟอร์มใดแพลตฟอร์มหนึ่งโดยเฉพาะ แต่มีไลบรารีสำหรับแพลตฟอร์มที่เฉพาะเจาะจง

  2. ในไฟล์ gradle.properties ของโปรเจ็กต์ ให้ระบุตำแหน่งของ SDK ที่แตกไฟล์แล้ว

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
  3. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ settings.gradle ของโปรเจ็กต์

    def firebase_cpp_sdk_dir = System.getProperty('firebase_cpp_sdk.dir')
    
    gradle.ext.firebase_cpp_sdk_dir = "$firebase_cpp_sdk_dir"
    includeBuild "$firebase_cpp_sdk_dir"
  4. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ Gradle ระดับโมดูลหรือระดับแอป (มักจะเป็น app/build.gradle)
    ระบุทรัพยากร Dependency ของไลบรารีสำหรับผลิตภัณฑ์ Firebase ที่ต้องการใช้ในแอป

    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Analytics, Firebase Authentication, and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
      auth
      database
    }
    android.defaultConfig.externalNativeBuild.cmake {
    arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    # Add the dependencies for the Firebase products you want to use in your app
    # For example, to use Firebase Authentication and Firebase Realtime Database
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      auth
      database
    }
  5. เพิ่มเนื้อหาต่อไปนี้ลงในไฟล์ CMakeLists.txt ของโปรเจ็กต์
    รวมไลบรารีของผลิตภัณฑ์ 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 Analytics, Firebase Authentication, and Firebase Realtime Database
    set(firebase_libs
      firebase_analytics
      firebase_auth
      firebase_database
      firebase_app
    )
    target_link_libraries(${target_name} "${firebase_libs}")
    # 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}")
  6. ซิงค์แอปเพื่อให้ทรัพยากร Dependency ทั้งหมดมีเวอร์ชันที่จำเป็น

  7. หากคุณเพิ่ม Analytics ให้เรียกใช้แอปเพื่อส่งการยืนยันไปยัง Firebase ว่าคุณผสานรวม Firebase เรียบร้อยแล้ว หรือจะข้ามขั้นตอนการยืนยันก็ได้

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

เรียบร้อยแล้ว แอป C++ ของคุณได้รับการลงทะเบียนและกําหนดค่าให้ใช้บริการ Firebase แล้ว

  1. ตรวจสอบว่าคุณมี Android NDK v10d ขึ้นไป
  2. ดาวน์โหลด Firebase C++ SDK แล้วแตกไฟล์ SDK ไว้ที่ใดก็ได้ที่คุณสะดวก

    SDK Firebase C++ ไม่ได้เจาะจงแพลตฟอร์ม แต่มีไลบรารีที่เจาะจงแพลตฟอร์ม

  3. เปิดไฟล์ local.properties แล้วทำดังนี้

    • กําหนดตัวแปร firebase_cpp_sdk.dir เป็นตําแหน่งไฟล์ Firebase C++ SDK ที่แตกไฟล์แล้ว
    • ตั้งค่าตัวแปร ndk.dir เป็นตำแหน่งของ Android NDK
  4. หากต้องการใช้การรองรับ ndkBuild ในตัวของ Gradle ให้สร้างไดเรกทอรี jni ภายในไดเรกทอรีระดับบนสุด จากนั้นสร้างไฟล์ make ต่อไปนี้

    1. สร้างไฟล์ jni/Application.mk โดยใช้ข้อมูลต่อไปนี้

      APP_PLATFORM:=android-14
      NDK_TOOLCHAIN_VERSION=clang
      APP_ABI:=armeabi-v7a arm64-v8a x86 x86_64
      APP_STL:=c++_static
      APP_MODULES:=android_main
      APP_CPPFLAGS+=-std=c++11
    2. สร้างไฟล์ jni/Android.mk ที่มีเนื้อหาต่อไปนี้

      รวมไลบรารีของผลิตภัณฑ์ Firebase ที่ต้องการใช้ เช่น หากต้องการใช้ Analytics ให้ทำดังนี้

      LOCAL_PATH:=$(call my-dir)/..
      
      ifeq ($(FIREBASE_CPP_SDK_DIR),)
      $(error FIREBASE_CPP_SDK_DIR must specify the Firebase package location.)
      endif
      
      # With Firebase libraries for the selected build configuration (ABI + STL)
      STL:=$(firstword $(subst _, ,$(APP_STL)))
      FIREBASE_LIBRARY_PATH:=\
      $(FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL)
      
      # The Firebase C++ library `libfirebase_app.a` is required for all Firebase products.
      include $(CLEAR_VARS)
      LOCAL_MODULE:=firebase_app
      LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_app.a
      LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include
      include $(PREBUILT_STATIC_LIBRARY)
      
      # Include the Firebase library for Google Analytics.
      # Note: Duplicate this block for each Firebase product that you want
      # to use in your app, and replace variable values as appropriate.
      include $(CLEAR_VARS)
      LOCAL_MODULE:=firebase_analytics
      LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_analytics.a
      LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include
      include $(PREBUILT_STATIC_LIBRARY)
      
      include $(CLEAR_VARS)
      LOCAL_MODULE:=android_main
      # Reference your project's C++ source files
      LOCAL_SRC_FILES:=\
        $(LOCAL_PATH)/src/common_main.cc \
        $(LOCAL_PATH)/src/android/android_main.cc
      LOCAL_STATIC_LIBRARIES:=\
        firebase_analytics \
        firebase_app  # this library reference must always be listed last
      LOCAL_WHOLE_STATIC_LIBRARIES:=\
        android_native_app_glue
      LOCAL_C_INCLUDES:=\
        $(NDK_ROOT)/sources/android/native_app_glue \
        $(LOCAL_PATH)/src
      LOCAL_LDLIBS:=-llog -landroid -latomic
      LOCAL_ARM_MODE:=arm
      LOCAL_LDFLAGS:=-Wl,-z,defs -Wl,--no-undefined
      include $(BUILD_SHARED_LIBRARY)
      
      $(call import-add-path,$(NDK_ROOT)/sources/android)
      $(call import-module,android/native_app_glue)
  5. เปิดไฟล์ build.gradle ระดับบนสุด แล้วทำตามขั้นตอนต่อไปนี้

    1. เพิ่มทรัพยากร Dependency สำหรับผลิตภัณฑ์ Firebase ที่ต้องการใช้ เช่น หากต้องการใช้ Analytics ให้ทำดังนี้

      dependencies {
        implementation 'com.google.firebase:firebase-analytics:21.0.0'
      }
    2. เพิ่มบรรทัดต่อไปนี้เพื่อให้โปรเจ็กต์ใช้การรองรับ ndk-build ในตัวของ Gradle เพื่อรวมไลบรารี Firebase ที่ระบุไว้ในไฟล์ jni/Android.mk

      android {
      // ...
          defaultConfig {
              // ...
              externalNativeBuild.ndkBuild {
                  arguments "FIREBASE_CPP_SDK_DIR=${project.ext.firebase_cpp_sdk_dir}",
                            "NDK_APPLICTION_MK=jni/Application.mk",
                            sprintf("APP_PLATFORM=android-%d",
                            android.defaultConfig.minSdkVersion.mApiLevel)
              }
          }
      }

ผลิตภัณฑ์ Firebase แต่ละรายการมีความเกี่ยวข้องกันแตกต่างกัน อย่าลืมเพิ่ม Dependency ที่ระบุไว้ทั้งหมดสำหรับผลิตภัณฑ์ Firebase ที่ต้องการใช้

เพิ่มไลบรารี C++ ของ Firebase (เช่น libfirebase_app.a) โดยรวมไว้ในไฟล์ jni/Android.mk ระดับบนสุด สําหรับข้อกําหนดอื่นๆ (เช่น com.google.firebase:firebase-auth) ให้เพิ่มลงในไฟล์ build.gradle ระดับบนสุด

ผลิตภัณฑ์ Firebase ไลบรารีและ Dependency
AdMob libfirebase_admob.a
(ต้องระบุ) libfirebase_analytics.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-ads:19.8.0'
(ต้องระบุ) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Analytics libfirebase_analytics.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-analytics:21.0.0'
App Check libfirebase_app_check.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-appcheck:17.0.0'
Authentication libfirebase_auth.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-auth:21.0.5'
Cloud Firestore libfirebase_firestore.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-firestore:24.1.2'
Cloud Functions libfirebase_functions.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-functions:20.1.0'
Cloud Messaging libfirebase_messaging.a
(แนะนำ) libfirebase_analytics.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-messaging:23.0.5'
(แนะนำ) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Cloud Storage libfirebase_storage.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-storage:20.0.1'
Dynamic Links ibfirebase_dynamic_links.a
(แนะนำ) libfirebase_analytics.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-dynamic-links:21.0.1'
(แนะนำ) implementation 'com.google.firebase:firebase-analytics:21.0.0'
Realtime Database libfirebase_database.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-database:20.0.5'
Remote Config libfirebase_remote_config.a
(แนะนำ) libfirebase_analytics.a
(ต้องระบุ) libfirebase_app.a

implementation 'com.google.firebase:firebase-config:21.1.0'
(แนะนำ) implementation 'com.google.firebase:firebase-analytics:21.0.0'

ไลบรารีที่ใช้ได้

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

ไลบรารีที่ใช้ได้สำหรับ Android (โดยใช้ CMake)

โปรดทราบว่าไลบรารี C++ สําหรับแพลตฟอร์ม Apple จะแสดงอยู่ในหน้าการตั้งค่าเวอร์ชันแพลตฟอร์ม Apple (iOS+)

ผลิตภัณฑ์ Firebase ข้อมูลอ้างอิงคลัง
(firebaseCpp.dependencies
สำหรับไฟล์ build.gradle)
ข้อมูลอ้างอิงคลัง
(firebase_libs
สำหรับไฟล์ CMakeLists.txt)
AdMob admob firebase_admob
(ต้องระบุ) firebase_analytics
(ต้องระบุ) firebase_app
Analytics analytics firebase_analytics
(ต้องระบุ) firebase_app
App Check appCheck firebase_app_check
(ต้องระบุ) firebase_app
Authentication auth firebase_auth
(ต้องระบุ) firebase_app
Cloud Firestore firestore firebase_firestore
(ต้องระบุ) firebase_auth
(ต้องระบุ) firebase_app
Cloud Functions functions firebase_functions
(ต้องระบุ) firebase_app
Cloud Messaging messaging firebase_messaging
(แนะนำ) firebase_analytics
(ต้องระบุ) firebase_app
Cloud Storage storage firebase_storage
(ต้องระบุ) firebase_app
Dynamic Links dynamicLinks firebase_dynamic_links
(แนะนำ) firebase_analytics
(ต้องระบุ) firebase_app
Realtime Database database firebase_database
(ต้องระบุ) firebase_app
Remote Config remoteConfig firebase_remote_config
(แนะนำ) firebase_analytics
(ต้องระบุ) firebase_app

ข้อมูลเพิ่มเติมสำหรับการตั้งค่าอุปกรณ์เคลื่อนที่

ดูรายงานข้อขัดข้องของ NDK

Firebase Crashlytics รองรับการรายงานข้อขัดข้องสำหรับแอปที่ใช้ไลบรารีแบบเนทีฟของ Android ดูข้อมูลเพิ่มเติมได้ที่รับรายงานข้อขัดข้องของ Android NDK

ระบบการบิลด์ที่กำหนดเอง

Firebase มีสคริปต์ generate_xml_from_google_services_json.py ที่จะแปลง google-services.json เป็นทรัพยากร .xml ซึ่งคุณสามารถรวมไว้ในโปรเจ็กต์ได้ สคริปต์นี้จะใช้การเปลี่ยนรูปแบบเดียวกับที่ปลั๊กอิน Gradle ของ Google Play Services ดำเนินการเมื่อสร้างแอปพลิเคชัน Android

หากคุณไม่ได้สร้างโดยใช้ Gradle (เช่น คุณใช้ ndk-build, makefile, Visual Studio ฯลฯ) คุณสามารถใช้สคริปต์นี้เพื่อสร้างทรัพยากรสตริงของ Android โดยอัตโนมัติ

ProGuard

ระบบการสร้าง Android จำนวนมากใช้ ProGuard สำหรับการสร้างในโหมดรุ่นเพื่อลดขนาดแอปพลิเคชันและปกป้องซอร์สโค้ด Java

หากใช้ ProGuard คุณจะต้องเพิ่มไฟล์ใน libs/android/*.pro ที่สอดคล้องกับไลบรารี Firebase C++ ที่คุณใช้อยู่ในการกําหนดค่า ProGuard

เช่น เมื่อใช้ Gradle หากคุณใช้ Google Analytics ไฟล์ build.gradle จะมีลักษณะดังนี้

android {
  // ...
  buildTypes {
    release {
      minifyEnabled true
      proguardFile getDefaultProguardFile('your-project-proguard-config.txt')
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/app.pro")
      proguardFile file(project.ext.your_local_firebase_sdk_dir + "/libs/android/analytics.pro")
      // ...  and so on, for each Firebase C++ library that you're using
    }
  }
}

ข้อกำหนดของบริการ Google Play

ไลบรารี Firebase C++ ส่วนใหญ่กำหนดให้ต้องมีบริการ Google Play ในอุปกรณ์ Android ของลูกค้า หากไลบรารี Firebase C++ แสดงผลเป็น kInitResultFailedMissingDependency ในการเริ่มต้น แสดงว่าบริการ Google Play ไม่พร้อมใช้งานในอุปกรณ์ไคลเอ็นต์ (ซึ่งหมายความว่าต้องอัปเดต กลับมาเปิดใช้งาน แก้ไขสิทธิ์ ฯลฯ) คุณใช้ไลบรารี Firebase ไม่ได้จนกว่าจะแก้ไขสถานการณ์ในอุปกรณ์ไคลเอ็นต์

คุณสามารถดูสาเหตุที่บริการ Google Play ไม่พร้อมใช้งานในอุปกรณ์ไคลเอ็นต์ (และพยายามแก้ไข) โดยใช้ฟังก์ชันใน google_play_services/availability.h

ตารางต่อไปนี้แสดงว่าต้องใช้บริการ Google Play ในอุปกรณ์ไคลเอ็นต์สำหรับผลิตภัณฑ์ Firebase ที่รองรับแต่ละรายการหรือไม่

ไลบรารี Firebase C++ ต้องใช้บริการ Google Play ในอุปกรณ์ไคลเอ็นต์ไหม
AdMob ไม่จําเป็น (ปกติ)
Analytics ไม่จำเป็น
Authentication ต้องระบุ
Cloud Firestore ต้องระบุ
Cloud Functions ต้องระบุ
Cloud Messaging ต้องระบุ
Cloud Storage ต้องระบุ
Dynamic Links ต้องระบุ
Realtime Database ต้องระบุ
Remote Config ต้องระบุ

AdMob และบริการ Google Play

Google Mobile Ads SDK สําหรับ Android เวอร์ชันส่วนใหญ่ทํางานได้อย่างถูกต้องแม้ไม่มีบริการ Google Play ในอุปกรณ์ไคลเอ็นต์ อย่างไรก็ตาม หากคุณใช้ Dependency แทน com.google.firebase:firebase-ads Dependency มาตรฐานที่ระบุไว้ข้างต้น คุณจำเป็นต้องใช้บริการ Google Playcom.google.android.gms:play-services-ads-lite

การจัดเตรียมค่าเริ่มต้น AdMob จะแสดงผลเป็น kInitResultFailedMissingDependency เท่านั้น เมื่อทั้ง 2 เงื่อนไขต่อไปนี้เป็นจริง

  • บริการ Google Play ไม่พร้อมใช้งานในอุปกรณ์ไคลเอ็นต์
  • คุณกำลังใช้ com.google.android.gms:play-services-ads-lite

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

เมื่อสร้างเกม มักจะง่ายกว่ามากที่จะทดสอบเกมบนแพลตฟอร์มเดสก์ท็อปก่อน จากนั้นจึงนำไปใช้งานและทดสอบบนอุปกรณ์เคลื่อนที่ในขั้นตอนการพัฒนาในภายหลัง เราให้บริการชุดย่อยของ 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 จะค้นหาไฟล์ mobile นี้ จากนั้นจะสร้างไฟล์การกําหนดค่า Firebase desktop (google-services-desktop.json) โดยอัตโนมัติ

    • หากคุณเพิ่มGoogleService-Info.plistไฟล์ iOS ก่อนเรียกใช้แอป คุณต้องแปลงไฟล์ Mobile นี้เป็นไฟล์การกําหนดค่า 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)
App Check firebase_app_check
(ต้องระบุ) firebase_app
Authentication firebase_auth
(ต้องระบุ) firebase_app
Cloud Firestore firebase_firestore
firebase_auth
firebase_app
Cloud Functions firebase_functions
(ต้องระบุ) firebase_app
Cloud Storage firebase_storage
(ต้องระบุ) firebase_app
Realtime Database firebase_database
(ต้องระบุ) firebase_app
Remote Config firebase_remote_config
(ต้องระบุ) firebase_app

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

Realtime Database เดสก์ท็อป

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

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

ไลบรารีของ 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
Authentication 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
Remote Config 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

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