ערכות ה-SDK של Firebase ל-C++ מספקות ממשק C++ על גבי ערכות ה-SDK של Firebase, ומאפשרות לשפר את המשחקים שלכם ב-C++.
גישה ל-Firebase ישירות מתוך קוד ה-C++, בלי לכתוב קוד ייעודי לפלטפורמה. ב-Firebase SDK מתבצעת גם תרגום של ביטויים רבים שספציפיים לשפה שבה נעשה שימוש ב-Firebase, לממשק מוכר יותר למפתחי C++.
מידע נוסף על שיפור המשחקים באמצעות Firebase זמין בדף Firebase למשחקים.
כבר הוספתם את Firebase לפרויקט C++? חשוב לוודא שאתם משתמשים בגרסה העדכנית ביותר של Firebase C++ SDK.
דרישות מוקדמות
מתקינים את העורך או סביבת הפיתוח המשולבת (IDE) המועדפים עליכם, כמו Android Studio, IntelliJ או VS Code.
מורידים את Android SDK.
עליכם לוודא שהפרויקט עומד בדרישות הבאות:
מטרגטת לרמת API 21 (Lollipop) ומעלה
משתמשת ב-Gradle ומוגדרת באמצעות CMake
מגדירים מכשיר פיזי או משתמשים במהדמה כדי להריץ את האפליקציה.
נכנסים ל-Firebase באמצעות חשבון Google.
שלב 2: יוצרים פרויקט Firebase
לפני שמוסיפים את Firebase לפרויקט C++, צריך ליצור פרויקט Firebase כדי לקשר אותו לפרויקט C++. למידע נוסף על פרויקטים ב-Firebase, אפשר לקרוא את המאמר הסבר על פרויקטים ב-Firebase.
יצירת פרויקט Firebase
-
במסוף Firebase, לוחצים על Add project.
-
כדי להוסיף משאבים של Firebase לפרויקט Google Cloud קיים, מזינים את שם הפרויקט או בוחרים אותו בתפריט הנפתח.
-
כדי ליצור פרויקט חדש, מזינים את שם הפרויקט הרצוי. אפשר גם לערוך את מזהה הפרויקט שמוצג מתחת לשם הפרויקט.
-
-
אם תופיע בקשה, קוראים את התנאים של Firebase ומאשרים אותם.
-
לוחצים על המשך.
-
(אופציונלי) מגדירים את Google Analytics בפרויקט כדי ליהנות מחוויית שימוש אופטימלית בכל אחד מהמוצרים הבאים של Firebase:
בוחרים חשבון Google Analytics קיים או יוצרים חשבון חדש.
אם יוצרים חשבון חדש, בוחרים את Analytics מיקום הדיווח ולאחר מכן מאשרים את ההגדרות של שיתוף הנתונים ואת התנאים של Google Analytics לפרויקט.
-
לוחצים על Create project (או על Add Firebase, אם משתמשים בפרויקט Google Cloud קיים).
מערכת Firebase מקצה משאבים באופן אוטומטי לפרויקט Firebase שלכם. בסיום התהליך, תועברו לדף הסקירה הכללית של הפרויקט ב-Firebase במסוף Firebase.
שלב 3: רישום האפליקציה ב-Firebase
כדי להשתמש ב-Firebase באפליקציה ל-Android, צריך לרשום את האפליקציה בפרויקט Firebase. לעיתים קרובות, רישום האפליקציה נקרא 'הוספת' האפליקציה לפרויקט.
נכנסים למסוף Firebase.
במרכז הדף 'סקירה כללית של הפרויקט', לוחצים על הסמל Android (
) או על הוספת אפליקציה כדי להפעיל את תהליך העבודה להגדרה.מזינים את שם החבילה של האפליקציה בשדה Android package name.
מהו שם חבילת אפליקציה ואיפה הוא מופיע?
שם החבילה מזהה באופן ייחודי את האפליקציה במכשיר ובחנות Google Play.
שם החבילה נקרא לרוב מזהה אפליקציה.
מחפשים את שם החבילה של האפליקציה בקובץ Gradle של המודול (ברמת האפליקציה), בדרך כלל
app/build.gradle
(שם חבילה לדוגמה:com.yourcompany.yourproject
).חשוב לזכור שהערך של שם החבילה תלוי אותיות רישיות, ולא ניתן לשנות אותו באפליקציית Firebase ל-Android אחרי שהיא תירשם בפרויקט Firebase.
(אופציונלי) מזינים פרטים נוספים על האפליקציה: הכינוי של האפליקציה וSHA-1 של אישור החתימה לניפוי באגים.
איך הכינוי של האפליקציה ואישור החתימה לצורך ניפוי באגים SHA-1 משמשים ב-Firebase?
כינוי לאפליקציה: מזהה פנימי לנוחות השימוש, שגלוי לכם רק במסוף Firebase.
SHA-1 לאישור החתימה לצורך ניפוי באגים: גיבוב SHA-1 נדרש ל-Firebase Authentication (כשמשתמשים בכניסה באמצעות חשבון Google או בכניסה באמצעות מספר טלפון) ול-Firebase Dynamic Links.
לוחצים על רישום האפליקציה.
שלב 4: מוסיפים את קובץ התצורה של Firebase
לוחצים על Download google-services.json כדי לקבל את קובץ התצורה של Firebase ל-Android.
מה צריך לדעת על קובץ התצורה הזה?
קובץ התצורה של Firebase מכיל מזהים ייחודיים של הפרויקט, אבל הם לא סודיים. מידע נוסף על קובץ התצורה הזה זמין במאמר הסבר על פרויקטים ב-Firebase.
תמיד אפשר להוריד מחדש את קובץ התצורה של Firebase.
חשוב לוודא שלא מצורפים תווים נוספים לשם של קובץ התצורה, כמו
(2)
.
פותחים את פרויקט ה-C++ בסביבת פיתוח משולבת (IDE) ומוסיפים את קובץ התצורה לפרויקט:
גרסאות build של Gradle – מוסיפים את קובץ התצורה לאותה ספרייה שבה נמצא קובץ
build.gradle
ברמה העליונה.מערכות build אחרות – בקטע מערכות build בהתאמה אישית בהמשך מוסבר איך ליצור משאבי מחרוזות של Android.
(גרסאות build של Gradle בלבד) כדי להפעיל את שירותי Firebase בפרויקט C++, מוסיפים את הפלאגין google-services לקובץ
build.gradle
ברמה העליונה.מוסיפים כללים שכוללים את הפלאגין של שירותי Google ל-Gradle. בודקים גם אם מאגר 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 // ... } }
מחילים את הפלאגין של Google Services ל-Gradle:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
סיימתם את משימות ההגדרה במסוף Firebase. ממשיכים למטה לקטע הוספת Firebase C++ SDKs.
שלב 5: מוסיפים את ערכות ה-SDK של Firebase C++
השלבים בקטע הזה הם דוגמה לאופן שבו מוסיפים מוצרי Firebase נתמכים לפרויקט C++ ב-Firebase.
מורידים את Firebase C++ SDK ומחלצים את ה-SDK למקום נוח.
ערכת ה-SDK של Firebase C++ היא לא ספציפית לפלטפורמה, אבל היא מכילה ספריות ספציפיות לפלטפורמה.
בקובץ
gradle.properties
של הפרויקט, מציינים את המיקום של ה-SDK ללא הארכיון:systemProp.firebase_cpp_sdk.dir=
full-path-to-SDK מוסיפים את התוכן הבא לקובץ
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"
מוסיפים את התוכן הבא לקובץ Gradle של המודול (ברמת האפליקציה) (בדרך כלל
app/build.gradle
).
כוללים את יחסי התלות בספריות של מוצרי 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 }
מוסיפים את התוכן הבא לקובץ
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}")
מסנכרנים את האפליקציה כדי לוודא שלכל הרכיבים התלויים יש את הגרסאות הנדרשות.
אם הוספתם את Analytics, מריצים את האפליקציה כדי לשלוח ל-Firebase אישור על כך שהשלמתם את השילוב של Firebase. אם לא, אפשר לדלג על שלב האימות.
ביומני המכשיר יופיע האימות של Firebase על השלמת האיפוס. אם הפעלתם את האפליקציה במהדמה שיש לה גישה לרשת, תקבלו הודעה במסוף Firebase על כך שהחיבור לאפליקציה הושלם.
הכול מוכן. האפליקציה ב-C++ רשומה ומוגדר בה שימוש בשירותי Firebase.
(חלופה אופציונלית) שימוש ב-ndk-build כדי להוסיף ערכות SDK
- עליכם לוודא שמותקנת אצלכם גרסת Android NDK v10d ואילך.
מורידים את Firebase C++ SDK ומחלצים את ה-SDK למקום נוח.
ערכת ה-SDK של Firebase C++ היא לא ספציפית לפלטפורמה, אבל היא מכילה ספריות ספציפיות לפלטפורמה.
-
פותחים את הקובץ
local.properties
ואז:- מגדירים את המשתנה
firebase_cpp_sdk.dir
למיקום של Firebase C++ SDK ללא הארכיון. - מגדירים את המשתנה
ndk.dir
למיקום של Android NDK.
- מגדירים את המשתנה
-
כדי להשתמש בתמיכה המובנית של Gradle ב-ndkBuild, יוצרים ספרייה
jni
בתיקיית הרמה העליונה, ואז יוצרים את קובצי ה-make
הבאים.-
יוצרים קובץ
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
-
יוצרים קובץ
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)
-
-
פותחים את הקובץ
build.gradle
ברמה העליונה, ומבצעים את השלבים הבאים:-
מוסיפים את היחסי התלות של מוצרי Firebase שבהם רוצים להשתמש. לדוגמה, כדי להשתמש ב-Analytics:
dependencies { implementation 'com.google.firebase:firebase-analytics:21.0.0' }
-
מוסיפים את השורות הבאות כדי שהפרויקט ישתמש בתמיכה המובנית של Gradle ב-ndk-build, וכך יכלול את ספריות 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) } } }
-
ספריות זמינות ל-Android (באמצעות ndk-build)
לכל מוצר של Firebase יש יחסי תלות שונים. חשוב להוסיף את כל יחסי התלות שמפורטים למוצרי Firebase שבהם אתם רוצים להשתמש.
מוסיפים ספריות C++ של Firebase (כמו libfirebase_app.a
) על ידי הכללה שלהן בקובץ jni/Android.mk
ברמה העליונה. כדי להוסיף יחסי תלות אחרים (כמו com.google.firebase:firebase-auth
), מוסיפים אותם לקובץ build.gradle
ברמה העליונה.
מוצר Firebase | ספריות ותלות |
---|---|
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.
מערכות build בהתאמה אישית
Firebase מספק את הסקריפט generate_xml_from_google_services_json.py
כדי להמיר את google-services.json
למשאבים מסוג .xml
שאפשר לכלול בפרויקט. הסקריפט הזה מחיל את אותה טרנספורמציה שפועלת בפלאגין Gradle של Google Play Services כשמפתחים אפליקציות ל-Android.
אם אתם לא משתמשים ב-Gradle ליצירת גרסאות build (לדוגמה, אתם משתמשים ב-ndk-build, ב-makefiles, ב-Visual Studio וכו'), תוכלו להשתמש בסקריפט הזה כדי ליצור באופן אוטומטי משאבי מחרוזות של Android.
ProGuard
הרבה מערכות build ל-Android משתמשות ב-ProGuard לגרסאות build במצב Release כדי לצמצם את גודל האפליקציות ולהגן על קוד המקור של Java.
אם אתם משתמשים ב-ProGuard, תצטרכו להוסיף את הקבצים ב-libs/android/*.pro
שמתאימים לספריות C++ של Firebase שבהן אתם משתמשים בהגדרות של 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 Services
ברוב ספריות ה-C++ של Firebase נדרש Google Play Services במכשיר Android של הלקוח. אם ספריית Firebase C++ מחזירה את הערך kInitResultFailedMissingDependency
במהלך האינטראקציה הראשונה, המשמעות היא ש-Google Play Services לא זמין במכשיר הלקוח (כלומר, צריך לעדכן אותו, להפעיל אותו מחדש, לתקן את ההרשאות וכו'). לא ניתן להשתמש בספריית Firebase עד שהבעיה במכשיר הלקוח תטופל.
כדי לבדוק למה שירותי Google Play לא זמינים במכשיר הלקוח (ולנסות לתקן את הבעיה), אפשר להשתמש בפונקציות שמפורטות בקטע google_play_services/availability.h
.
בטבלה הבאה מפורט אם שירותי Google Play נדרשים במכשיר הלקוח לכל מוצר Firebase נתמך.
Firebase C++ Library | האם נדרש Google Play Services במכשיר הלקוח? |
---|---|
AdMob | לא נדרש (בדרך כלל) |
Analytics | לא חובה |
Authentication | חובה |
Cloud Firestore | חובה |
Cloud Functions | חובה |
Cloud Messaging | חובה |
Cloud Storage | חובה |
Dynamic Links | חובה |
Realtime Database | חובה |
Remote Config | חובה |
AdMob ו-Google Play Services
רוב הגרסאות של Google Mobile Ads SDK ל-Android יכולות לפעול כראוי בלי Google Play Services במכשיר הלקוח. עם זאת, אם משתמשים ביחס התלות com.google.android.gms:play-services-ads-lite
במקום ביחס התלות הרגיל com.google.firebase:firebase-ads
שמפורט למעלה, נדרשת התקנה של Google Play Services.
הפונקציה AdMob תחזיר את הערך kInitResultFailedMissingDependency
רק אם מתקיימים שני התנאים הבאים:
- שירותי Google Play לא זמינים במכשיר הלקוח.
- אתם משתמשים ב-
com.google.android.gms:play-services-ads-lite
.
הגדרת תהליך עבודה במחשב (בטא)
כשאתם יוצרים משחק, בדרך כלל קל יותר לבדוק אותו קודם בפלטפורמות למחשב, ולאחר מכן לפרוס ולבדוק אותו במכשירים ניידים בשלב מאוחר יותר בפיתוח. כדי לתמוך בתהליך העבודה הזה, אנחנו מספקים קבוצת משנה של ערכות ה-SDK של Firebase C++ שאפשר להריץ ב-Windows, ב-macOS, ב-Linux ובתוך עורך ה-C++.
בתהליכי עבודה במחשב, צריך לבצע את הפעולות הבאות:
- מגדירים את פרויקט ה-C++ ל-CMake.
- יצירת פרויקט Firebase
- רישום האפליקציה (ל-iOS או ל-Android) ב-Firebase
- הוספת קובץ תצורה של Firebase לפלטפורמה לנייד
יוצרים גרסה למחשב של קובץ התצורה של Firebase:
אם הוספתם את הקובץ
google-services.json
ל-Android – כשמריצים את האפליקציה, מערכת Firebase מאתרת את הקובץ לנייד הזה, ולאחר מכן יוצרת באופן אוטומטי קובץ תצורה של Firebase למחשב (google-services-desktop.json
).אם הוספתם את הקובץ
GoogleService-Info.plist
ל-iOS – לפני שמפעילים את האפליקציה, צריך להמיר את הקובץ הזה לנייד לקובץ תצורה של מחשב ב-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++.
ספריות זמינות (במחשב)
ה-SDK של Firebase C++ כולל תמיכה בתהליכי עבודה במחשב למערכי תכונות מצומצמים, שמאפשרת להשתמש בחלקים מסוימים של Firebase בגרסאות build עצמאיות למחשב ב-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 מספקת את שאר ספריות המחשב כטאבים (לא פונקציונליים) להטמעה, כדי להקל על ה-build ל-Windows, ל-macOS ול-Linux. לכן, אין צורך לבצע הידור מותנה של קוד כדי לטרגט את המחשב.
Realtime Database למחשב
ה-SDK של Realtime Database למחשב משתמש ב-REST כדי לגשת למסד הנתונים, לכן עליכם להצהיר על המדדים שבהם אתם משתמשים עם Query::OrderByChild()
במחשב, אחרת המאזינים לא יפעלו.
מידע נוסף על הגדרה במחשב
ספריות של Windows
ב-Windows, גרסאות הספריות מוצגות על סמך הפרמטרים הבאים:
- פלטפורמת build: מצב 32 ביט (x86) לעומת מצב 64 ביט (x64)
- סביבת זמן ריצה של Windows: Multithreaded / MT לעומת Multithreaded DLL /MD
- יעד: גרסה זמינה לעומת גרסה לניפוי באגים
חשוב לדעת שהספריות הבאות נבדקו באמצעות Visual Studio 2015 ו-2017.
כשמפתחים אפליקציות למחשב ב-C++ ב-Windows, צריך לקשר לפרויקט את ספריות Windows SDK הבאות. למידע נוסף, אפשר לעיין במסמכי התיעוד של המהדר.
Firebase C++ Library | יחסי תלות בספריות של 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
מסגרת המערכת של macOSFoundation
מסגרת המערכת של macOSSecurity
מסגרת המערכת של macOSGSS
מסגרת המערכת של macOSKerberos
מסגרת המערכת של macOSSystemConfiguration
מסגרת המערכת של 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
.
השלבים הבאים
הכנה להשקת האפליקציה:
- מגדירים התראות תקציב לפרויקט במסוף Google Cloud.
- במסוף Firebase, אפשר לעקוב אחרי לוח הבקרה של השימוש והחיוב כדי לקבל תמונה כללית של השימוש בפרויקט במספר שירותי Firebase.
- כדאי לעיין ברשימת המשימות להשקת Firebase.