הפעל את משחקי C++ שלך עם Firebase C++ SDK שלנו המספקים ממשק C++ על גבי Firebase SDK.
גש ל-Firebase לחלוטין מקוד C++ שלך, ללא צורך לכתוב שום קוד מקורי לפלטפורמה. ה-SDK של Firebase גם מתרגם ניבים ספציפיים לשפה המשמשים את Firebase לממשק המוכר יותר למפתחי C++.
קבל מידע נוסף על הפעלת המשחקים שלך עם Firebase בדף משחקי Firebase שלנו.
כבר הוספת את Firebase לפרויקט C++ שלך? ודא שאתה משתמש בגרסה העדכנית ביותר של Firebase C++ SDK .
דרישות מוקדמות
התקן את העורך או ה-IDE המועדפים עליך, כגון Android Studio, IntelliJ או VS Code.
השג את ה- SDK של Android .
ודא שהפרויקט שלך עומד בדרישות הבאות:
ממקד לרמת API 19 (KitKat) ומעלה
משתמש ב- Gradle ומוגדר עם CMake
הגדר מכשיר פיזי או השתמש באמולטור כדי להפעיל את האפליקציה שלך.
היכנס ל-Firebase באמצעות חשבון Google שלך.
שלב 2 : צור פרויקט Firebase
לפני שתוכל להוסיף את Firebase לפרויקט C++ שלך, עליך ליצור פרויקט Firebase כדי להתחבר לפרויקט C++ שלך. בקר בהבנת פרויקטים של Firebase כדי ללמוד עוד על פרויקטים של Firebase.
שלב 3 : רשום את האפליקציה שלך ב-Firebase
כדי להשתמש ב-Firebase באפליקציית Android שלך, עליך לרשום את האפליקציה שלך בפרויקט Firebase שלך. רישום האפליקציה שלך נקרא לעתים קרובות "הוספת" האפליקציה שלך לפרויקט שלך.
עבור אל מסוף Firebase .
במרכז דף סקירת הפרויקט, לחץ על סמל אנדרואיד (
) או הוסף אפליקציה כדי להפעיל את זרימת העבודה של ההגדרה.הזן את שם החבילה של האפליקציה שלך בשדה שם החבילה של Android .
שם חבילה מזהה באופן ייחודי את האפליקציה שלך במכשיר ובחנות Google Play.
שם חבילה מכונה לעתים קרובות מזהה יישום .
מצא את שם החבילה של האפליקציה שלך בקובץ Gradle של המודול (ברמת האפליקציה), בדרך כלל
app/build.gradle
(שם חבילה לדוגמה:com.yourcompany.yourproject
).שים לב שערך שם החבילה הוא תלוי רישיות, ולא ניתן לשנות אותו עבור אפליקציית Firebase Android זו לאחר שהיא נרשמה בפרויקט Firebase שלך.
(אופציונלי) הזן מידע אחר על האפליקציה: כינוי לאפליקציה ואישור חתימת באגים SHA-1 .
כינוי אפליקציה : מזהה פנימי, נוחות גלוי רק לך במסוף Firebase
ניפוי באגים באישור החתימה SHA-1 : יש צורך ב- hash SHA-1 על ידי אימות Firebase (בעת שימוש ב- Google Sign In או כניסה למספר טלפון ) ו- Firebase Dynamic Links .
לחץ על הרשמה אפליקציה .
שלב 4 : הוסף את קובץ התצורה של Firebase
לחץ על הורד את google-services.json כדי להשיג את קובץ התצורה של Firebase Android שלך.
קובץ התצורה של Firebase מכיל מזהים ייחודיים, אך לא סודיים עבור הפרויקט שלך. למידע נוסף על קובץ תצורה זה, בקר ב- Understand Firebase Projects .
תוכל להוריד שוב את קובץ התצורה של Firebase בכל עת.
ודא ששם קובץ התצורה אינו מצורף עם תווים נוספים, כמו
(2)
.
פתח את פרויקט C++ שלך ב-IDE, ולאחר מכן הוסף את קובץ התצורה שלך לפרויקט שלך:
Gradle builds - הוסף את קובץ התצורה שלך לאותה ספרייה כמו קובץ
build.gradle
ברמה העליונה.מערכות בנייה אחרות - ראה מערכות בנייה מותאמות אישית להלן ליצירת משאבי מחרוזת Android .
(בניית גרדל בלבד) כדי להפעיל שירותי Firebase בפרויקט C++ שלך, הוסף את הפלאגין google-services לקובץ
build.gradle
ברמה העליונה שלך.הוסף כללים כדי לכלול את הפלאגין של שירותי Google Gradle. בדוק שיש לך גם את מאגר Maven של גוגל.
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.1' // Google Services plugin implementation 'com.google.android.gms:18.3.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 plugin android { // ... }
סיימת להגדיר משימות במסוף Firebase. המשך להוסיף Firebase C++ SDK למטה.
שלב 5 : הוסף ערכות SDK של Firebase C++
השלבים בסעיף זה הם דוגמה כיצד להוסיף מוצרי 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 שבהם אתה רוצה להשתמש באפליקציה שלך.אנליטיקס מופעל
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 שאתה רוצה להשתמש באפליקציה שלך.אנליטיקס מופעל
# 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 .
ספריות זמינות עבור אנדרואיד (באמצעות CMake)
שים לב שספריות C++ עבור פלטפורמות Apple מופיעות בגרסת Apple platforms (iOS+) של דף הגדרה זה .
מוצר Firebase | הפניות לספרייה ( firebaseCpp.dependencies עבור קובץ build.gradle ) | הפניות לספרייה ( firebase_libs עבור קובץ CMakeLists.txt ) |
---|---|---|
AdMob | admob | firebase_admob (נדרש) firebase_analytics (חובה) firebase_app |
ניתוח | analytics | firebase_analytics (חובה) firebase_app |
בדיקת אפליקציה | appCheck | firebase_app_check (חובה) firebase_app |
אימות | auth | firebase_auth (חובה) firebase_app |
Cloud Firestore | firestore | firebase_firestore (נדרש) firebase_auth (חובה) firebase_app |
פונקציות ענן | functions | firebase_functions (חובה) firebase_app |
העברת הודעות בענן | messaging | firebase_messaging (מומלץ) firebase_analytics (חובה) firebase_app |
אחסון בענן | storage | firebase_storage (חובה) firebase_app |
קישורים דינמיים | dynamicLinks | firebase_dynamic_links (מומלץ) firebase_analytics (חובה) firebase_app |
מסד נתונים בזמן אמת | database | firebase_database (חובה) firebase_app |
תצורה מרחוק | 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
שתוכל לכלול בפרויקט שלך. סקריפט זה מחיל את אותה השינוי שהתוסף של שירותי Google Play Gradle מבצע בעת בניית אפליקציות אנדרואיד.
אם אינך בונה באמצעות Gradle (לדוגמה, אתה משתמש ב-ndk-build, makefiles, Visual Studio וכו'), תוכל להשתמש בסקריפט זה כדי להפוך את היצירה של משאבי מחרוזת Android לאוטומטי.
ProGuard
מערכות בנייה רבות של אנדרואיד משתמשות ב-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 | לא חובה (בדרך כלל) |
ניתוח | לא דרוש |
אימות | נדרש |
Cloud Firestore | נדרש |
פונקציות ענן | נדרש |
העברת הודעות בענן | נדרש |
אחסון בענן | נדרש |
קישורים דינמיים | נדרש |
מסד נתונים בזמן אמת | נדרש |
תצורה מרחוק | נדרש |
שירותי AdMob ו-Google Play
רוב הגרסאות של Google Mobile Ads SDK עבור Android יכולות לעבוד כראוי ללא שירותי Google Play במכשיר הלקוח. עם זאת, אם אתה משתמש בתלות com.google.android.gms:play-services-ads-lite
, במקום התלות הסטנדרטית com.google.firebase:firebase-ads
המפורטת למעלה, יש צורך בשירותי Google Play .
אתחול AdMob יחזיר את kInitResultFailedMissingDependency
רק כאשר שני הדברים הבאים מתקיימים:
- שירותי Google Play אינם זמינים במכשיר הלקוח.
- אתה משתמש
com.google.android.gms:play-services-ads-lite
.
הגדר זרימת עבודה בשולחן העבודה ( בטא )
כשאתה יוצר משחק, לעתים קרובות הרבה יותר קל לבדוק את המשחק שלך בפלטפורמות שולחניות תחילה, ואז לפרוס ולבדוק במכשירים ניידים מאוחר יותר בפיתוח. כדי לתמוך בזרימת עבודה זו, אנו מספקים תת-קבוצה של Firebase C++ SDKs שיכולים לפעול על Windows, macOS, Linux ומתוך עורך C++.
עבור זרימות עבודה בשולחן העבודה, עליך להשלים את הפעולות הבאות:
- הגדר את פרויקט C++ שלך עבור CMake.
- צור פרויקט Firebase
- רשום את האפליקציה שלך (iOS או Android) עם Firebase
- הוסף קובץ תצורה של Firebase לפלטפורמה ניידת
צור גרסת שולחן עבודה של קובץ התצורה של Firebase:
אם הוספת את קובץ ה-Android
google-services.json
- כאשר אתה מפעיל את האפליקציה שלך, 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. בקר ב- Understand Firebase Projects כדי ללמוד עוד על קובצי תצורה.
הוסף ערכות SDK של Firebase לפרויקט C++ שלך.
השלבים שלהלן משמשים דוגמה להוספת כל מוצר נתמך של Firebase לפרויקט C++ שלך. בדוגמה זו, אנו עוברים על הוספת Firebase Authentication ו-Firebase Realtime Database.
הגדר את משתנה הסביבה
FIREBASE_CPP_SDK_DIR
למיקום של ה-SDK של Firebase 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) |
---|---|
בדיקת אפליקציה | firebase_app_check (חובה) firebase_app |
אימות | 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 מספקת את ספריות שולחן העבודה הנותרות כהטמעות סטאב (לא פונקציונליות) לנוחות בעת בנייה עבור Windows, macOS ו-Linux. לכן, אין צורך להדר קוד באופן מותנה כדי למקד לשולחן העבודה.
שולחן העבודה של מסד נתונים בזמן אמת
ה- 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 |
---|---|
בדיקת אפליקציה | advapi32, ws2_32, crypt32 |
אימות | 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 (Darwin), גרסאות ספרייה מסופקות עבור פלטפורמת 64 סיביות (x86_64). מסגרות מסופקות גם לנוחיותך.
שים לב שספריות macOS נבדקו באמצעות Xcode 13.3.1.
בעת בניית אפליקציות C++ למחשב שולחני ב-macOS, קשר את הדברים הבאים לפרויקט שלך:
- ספריית מערכת
pthread
-
CoreFoundation
מסגרת מערכת macOS -
Foundation
מערכת macOS - מסגרת מערכת
Security
של macOS - מסגרת מערכת
GSS
macOS - מסגרת מערכת
Kerberos
macOS -
SystemConfiguration
מסגרת מערכת macOS
עיין בתיעוד המהדר שלך למידע נוסף.
ספריות לינוקס
עבור לינוקס, גרסאות ספרייה מסופקות עבור פלטפורמות 32 סיביות (i386) ו-64 סיביות (x86_64).
שים לב שספריות לינוקס נבדקו באמצעות GCC 4.8.0, GCC 7.2.0 ו-Clang 5.0 באובונטו.
בעת בניית אפליקציות C++ לשולחן העבודה ב-Linux, קשר את ספריית מערכת pthread
לפרויקט שלך. עיין בתיעוד המהדר שלך למידע נוסף. אם אתה בונה עם GCC 5 ואילך, הגדר -D_GLIBCXX_USE_CXX11_ABI=0
.
הצעדים הבאים
חקור את SDK בקוד פתוח ב-GitHub .
היכונו להפעלת האפליקציה שלכם:
- הגדר התראות תקציב עבור הפרויקט שלך במסוף Google Cloud.
- עקוב אחר לוח המחוונים של השימוש והחיובים במסוף Firebase כדי לקבל תמונה כוללת של השימוש בפרויקט שלך בשירותי Firebase מרובים.
- עיין ברשימת המשימות להפעלת Firebase .