משפרים את משחקי C++ בעזרת Firebase C++ SDKs, שמספקים ממשק C++ על גבי Firebase SDKs.
גישה ל-Firebase באופן מלא מקוד C++, בלי לכתוב קוד מקורי לפלטפורמה. בנוסף, Firebase SDK מתרגם הרבה ניבים ספציפיים לשפה שבהם נעשה שימוש ב-Firebase לממשק שמוכר יותר למפתחי C++.
מידע נוסף על שיפור המשחקים באמצעות Firebase זמין בדף המשחקים של Firebase.
כבר הוספתם את Firebase לפרויקט C++? חשוב לוודא שאתם משתמשים בגרסה העדכנית ביותר של Firebase C++ SDK.
דרישות מוקדמות
מתקינים את העורך או סביבת הפיתוח המשולבת (IDE) המועדפים, כמו Android Studio, IntelliJ או VS Code.
משיגים את Android SDK.
צריך לוודא שהפרויקט עומד בדרישות הבאות:
מטרגטת לרמת API 23 (Marshmallow) ומעלה
משתמש ב-Gradle ומוגדר עם CMake
מגדירים מכשיר פיזי או משתמשים באמולטור כדי להריץ את האפליקציה.
נכנסים ל-Firebase באמצעות חשבון Google.
שלב 2: יצירת פרויקט Firebase
לפני שמוסיפים את Firebase לפרויקט C++, צריך ליצור פרויקט Firebase כדי לקשר אותו לפרויקט C++. מידע נוסף על פרויקטים ב-Firebase זמין במאמר הסבר על פרויקטים ב-Firebase.
שלב 3: רישום האפליקציה ב-Firebase
כדי להשתמש ב-Firebase באפליקציית Android, צריך לרשום את האפליקציה בפרויקט Firebase. רישום האפליקציה נקרא לעיתים קרובות "הוספה" של האפליקציה לפרויקט.
עוברים אל מסוף Firebase.
במרכז דף סקירת הפרויקט, לוחצים על הסמל Android () או על Add app (הוספת אפליקציה) כדי להפעיל את תהליך ההגדרה.
מזינים את שם החבילה של האפליקציה בשדה שם החבילה של Android.
(אופציונלי) מזינים כינוי לאפליקציה. זהו מזהה פנימי שנועד לנוחותכם וגלוי רק לכם במסוף Firebase.
לוחצים על Register app (רישום האפליקציה).
שלב 4: מוסיפים את קובץ ההגדרות של Firebase
לוחצים על Download google-services.json כדי להוריד את קובץ ההגדרות של Firebase ל-Android.
פותחים את פרויקט C++ בסביבת פיתוח משולבת (IDE) ומוסיפים את קובץ ההגדרות לפרויקט:
גרסאות build של Gradle – מוסיפים את קובץ ההגדרות לאותה תיקייה שבה נמצא קובץ
build.gradleברמה העליונה.מערכות בנייה אחרות – אפשר לעיין בקטע מערכות בנייה בהתאמה אישית שבהמשך כדי ליצור משאבי מחרוזות ל-Android.
(ב-Gradle builds בלבד) כדי להפעיל שירותי Firebase בפרויקט C++, מוסיפים את Google services Gradle plugin לקובץ
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.5.0' // Google services Gradle plugin implementation 'com.google.android.gms:18.11.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }מחילים את הפלאגין של שירותי Google ל-Gradle:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google services Gradle plugin android { // ... }
סיימתם את משימות ההגדרה במסוף Firebase. ממשיכים אל הוספת Firebase C++ SDKs בהמשך.
שלב 5: מוסיפים את Firebase C++ SDKs
השלבים בקטע הזה הם דוגמה לאופן ההוספה של מוצרי Firebase נתמכים לפרויקט Firebase C++.
מורידים את Firebase C++ SDK ומחלצים את ה-SDK למיקום נוח.
ערכת Firebase C++ SDK לא ספציפית לפלטפורמה, אבל היא מכילה ספריות ספציפיות לפלטפורמה.
בקובץ
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 שרוצים להשתמש בהם באפליקציה.Analytics מופעל
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 }
Analytics לא מופעל
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 שבהם רוצים להשתמש באפליקציה.Analytics מופעל
# 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}")
Analytics לא מופעל
# 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.
ספריות זמינות
מידע נוסף על ספריות C++ Firebase זמין במאמרי העזרה ובגרסת ה-SDK שלנו בקוד פתוח ב-GitHub.
ספריות זמינות ל-Android (באמצעות CMake)
הערה: ספריות C++ לפלטפורמות של אפל מפורטות בגרסת פלטפורמות של אפל (iOS ומעלה) של דף ההגדרה הזה.
| מוצר Firebase | הפניות לספרייה ( firebaseCpp.dependenciesלקובץ build.gradle) |
הפניות לספרייה ( firebase_libsלקובץ CMakeLists.txt) |
|---|---|---|
| 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
|
| Realtime Database | database |
firebase_database(חובה) firebase_app
|
| Remote Config | remoteConfig |
firebase_remote_config(מומלץ) firebase_analytics(חובה) firebase_app
|
| ספריות שהוצאו משימוש או לא נתמכות | ||
| Dynamic Links | dynamicLinks |
firebase_dynamic_links(מומלץ) firebase_analytics(חובה) firebase_app
|
מידע נוסף על הגדרה בנייד
קבלת דוחות קריסה של NDK
Firebase Crashlytics תומך בדיווח על קריסות באפליקציות שמשתמשות בספריות מקוריות של Android. מידע נוסף זמין במאמר בנושא קבלת דוחות קריסה של Android NDK.
מערכות בנייה בהתאמה אישית
ב-Firebase יש סקריפט generate_xml_from_google_services_json.py להמרה של משאבי google-services.json ל-.xml שאפשר לכלול בפרויקט. הסקריפט הזה מבצע את אותה טרנספורמציה שמבצע פלאגין Google Play services Gradle כשבונים אפליקציות ל-Android.
אם אתם לא משתמשים ב-Gradle כדי לבצע build (לדוגמה, אם אתם משתמשים ב-ndk-build, ב-makefiles, ב-Visual Studio וכו'), אתם יכולים להשתמש בסקריפט הזה כדי להפוך את היצירה של משאבי מחרוזות של Android לאוטומטית.
ProGuard
הרבה מערכות בנייה של Android משתמשות ב-ProGuard לבנייה במצב Release כדי לצמצם את גודל האפליקציה ולהגן על קוד המקור של Java.
אם אתם משתמשים ב-ProGuard, תצטרכו להוסיף את הקבצים ב-libs/android/*.pro
שמתאימים לספריות Firebase C++ שבהן אתם משתמשים בהגדרות של ProGuard.
לדוגמה, אם משתמשים ב-Gradle, הקובץ Google Analyticsbuild.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
רוב ספריות Firebase C++ דורשות ש-Google Play Services יהיה במכשיר Android של הלקוח. אם ספריית Firebase C++ מחזירה kInitResultFailedMissingDependency במהלך ההפעלה, זה אומר ש-Google Play Services לא זמין במכשיר הלקוח (כלומר, צריך לעדכן אותו, להפעיל אותו מחדש, לתקן את ההרשאות וכו'). אי אפשר להשתמש בספריית Firebase עד שהבעיה במכשיר הלקוח תיפתר.
כדי לגלות למה Google Play Services לא זמין במכשיר הלקוח (ולנסות לפתור את הבעיה), אפשר להשתמש בפונקציות ב-google_play_services/availability.h.
בטבלה הבאה מפורט אם נדרש Google Play Services במכשיר לקוח לכל מוצר נתמך של Firebase.
| ספריית Firebase C++ | נדרשת חבילת Google Play Services במכשיר הלקוח? |
|---|---|
| Analytics | לא חובה |
| Authentication | חובה |
| Cloud Firestore | חובה |
| Cloud Functions | חובה |
| Cloud Messaging | חובה |
| Cloud Storage | חובה |
| Dynamic Links | חובה |
| Realtime Database | חובה |
| Remote Config | חובה |
הגדרת תהליך עבודה במחשב (בטא)
כשיוצרים משחק, לרוב קל יותר לבדוק אותו קודם בפלטפורמות למחשב, ואז לפרוס אותו ולבדוק אותו במכשירים ניידים בשלב מאוחר יותר של הפיתוח. כדי לתמוך בתהליך העבודה הזה, אנחנו מספקים קבוצת משנה של ערכות ה-SDK של Firebase C++ שאפשר להריץ ב-Windows, ב-macOS, ב-Linux ומתוך עורך C++.
כדי להשתמש בתהליכי עבודה במחשב, צריך לבצע את הפעולות הבאות:
- מגדירים את פרויקט C++ ל-CMake.
- יצירת פרויקט Firebase
- רישום האפליקציה (iOS או Android) ב-Firebase
- הוספת קובץ תצורה של Firebase לפלטפורמה לנייד
יוצרים גרסת desktop של קובץ התצורה של Firebase:
אם הוספתם את קובץ
google-services.jsonשל Android – כשמריצים את האפליקציה, Firebase מאתר את קובץ mobile הזה, ואז יוצר באופן אוטומטי קובץ תצורה של 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 SDKs לפרויקט C++.
השלבים הבאים הם דוגמה להוספה של כל מוצר נתמך של Firebase לפרויקט C++. בדוגמה הזו, אנחנו מסבירים איך להוסיף את Firebase Authentication ו-Firebase Realtime Database.
מגדירים את משתנה הסביבה
FIREBASE_CPP_SDK_DIRלמיקום של Firebase SDK C++ שלא נפרס.מוסיפים את התוכן הבא לקובץ
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) |
|---|---|
| App Check |
firebase_app_check(חובה) firebase_app
|
| Authentication |
firebase_auth(חובה) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_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 מספקת את שאר הספריות למחשב כהטמעות stub (לא פונקציונליות) לנוחות כשמפתחים ל-Windows, ל-macOS ול-Linux. לכן, אין צורך להדר קוד באופן מותנה כדי לטרגט את המחשב.
מחשב Realtime Database
Realtime Database SDK למחשב משתמש ב-REST כדי לגשת למסד הנתונים, ולכן צריך להצהיר על האינדקסים שבהם משתמשים עם Query::OrderByChild() במחשב, אחרת המאזינים ייכשלו.
מידע נוסף על הגדרה במחשב
ספריות Windows
ב-Windows, גרסאות הספרייה מסופקות על סמך:
- פלטפורמת בנייה: מצב 32 ביט (x86) לעומת מצב 64 ביט (x64)
- סביבת זמן ריצה של Windows: Multithreaded / MT לעומת Multithreaded DLL /MD
- יעד: גרסת הפקה לעומת גרסת ניפוי באגים
שימו לב: הספריות הבאות נבדקו באמצעות Visual Studio 2015 ו-2017.
כשמפתחים אפליקציות C++ למחשב ב-Windows, צריך לקשר את הספריות הבאות של Windows SDK לפרויקט. מידע נוסף מופיע במאמרי העזרה של הקומפיילר.
| ספריית Firebase C++ | תלות של הפרויקט בספריות ב-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-bit (x86_64). לנוחיותכם, אנחנו מספקים גם מסגרות.
הערה: הספריות של macOS נבדקו באמצעות Xcode 26.2.
כשמפתחים אפליקציות 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.
השלבים הבאים
אפשר לעיין בערכת ה-SDK בקוד פתוח ב-GitHub.
הכנות להשקת האפליקציה:
- מגדירים התראות לגבי תקציב לפרויקט במסוף Google Cloud.
- כדי לקבל תמונה כוללת של השימוש בפרויקט בכמה שירותי Firebase, אפשר לעקוב אחרי לוח הבקרה 'שימוש וחיוב' במסוף Firebase.
- עיון ברשימת המשימות להשקה של Firebase.