משפרים את משחקי C++ בעזרת Firebase C++ SDKs, שמספקים ממשק C++ על גבי Firebase SDKs.
גישה ל-Firebase באופן מלא מקוד C++, בלי לכתוב קוד מקורי לפלטפורמה. בנוסף, Firebase SDK מתרגם הרבה ניבים ספציפיים לשפה שבהם נעשה שימוש ב-Firebase לממשק שמוכר יותר למפתחי C++.
מידע נוסף על שיפור המשחקים באמצעות Firebase זמין בדף המשחקים של Firebase.
כבר הוספתם את Firebase לפרויקט C++? חשוב לוודא שאתם משתמשים בגרסה העדכנית ביותר של Firebase C++ SDK.
דרישות מוקדמות
מתקינים את הפריטים הבאים:
- Xcode 26.2 ואילך
- CocoaPods 1.12.0 ואילך
חשוב לוודא שהפרויקט מיועד לגרסאות הפלטפורמה הבאות או לגרסאות חדשות יותר:
- iOS 15
- tvOS 15
מגדירים מכשיר פיזי או משתמשים בסימולטור כדי להריץ את האפליקציה.
נכנסים ל-Firebase באמצעות חשבון Google.
שלב 2: יצירת פרויקט Firebase
לפני שמוסיפים את Firebase לפרויקט C++, צריך ליצור פרויקט Firebase כדי לקשר אותו לפרויקט C++. מידע נוסף על פרויקטים ב-Firebase זמין במאמר הסבר על פרויקטים ב-Firebase.
שלב 3: רישום האפליקציה ב-Firebase
כדי להשתמש ב-Firebase באפליקציית Apple, צריך לרשום את האפליקציה בפרויקט Firebase. רישום האפליקציה נקרא לעיתים קרובות "הוספה" של האפליקציה לפרויקט.
עוברים אל מסוף Firebase.
במרכז הדף של סקירת הפרויקט, לוחצים על הסמל iOS+ כדי להפעיל את תהליך ההגדרה.
אם כבר הוספתם אפליקציה לפרויקט Firebase, לוחצים על הוספת אפליקציה כדי להציג את אפשרויות הפלטפורמה.
מזינים את מזהה החבילה של האפליקציה בשדה bundle ID (מזהה החבילה).
(אופציונלי) מזינים פרטים נוספים על האפליקציה: שם חיבה לאפליקציה ומזהה App Store.
לוחצים על Register app (רישום האפליקציה).
שלב 4: מוסיפים את קובץ ההגדרות של Firebase
לוחצים על Download GoogleService-Info.plist (הורדה של GoogleService-Info.plist) כדי לקבל את קובץ ההגדרות של פלטפורמות Apple ב-Firebase.
פותחים את פרויקט C++ בסביבת פיתוח משולבת (IDE) וגוררים את קובץ ההגדרות אל השורש של פרויקט C++.
אם מוצגת בקשה, בוחרים להוסיף את קובץ ההגדרות לכל יעדי ההעברה.
סיימתם את משימות ההגדרה במסוף Firebase. ממשיכים אל הוספת Firebase C++ SDKs בהמשך.
שלב 5: מוסיפים את Firebase C++ SDKs
השלבים בקטע הזה הם דוגמה לאופן שבו מוסיפים מוצרי Firebase נתמכים לפרויקט Firebase C++.
מורידים את Firebase C++ SDK ומחלצים את ה-SDK למיקום נוח.
ערכת Firebase C++ SDK לא ספציפית לפלטפורמה, אבל היא מכילה ספריות ספציפיות לפלטפורמה.
מוסיפים pods של Firebase מ-SDK שלא נפרס.
אם אין לכם קובץ Podfile, צריך ליצור אותו:
cd your-app-directory
pod init
מוסיפים ל-Podfile את ה-pods של Firebase שרוצים להשתמש בהם באפליקציה.
Analytics מופעל
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# 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 'FirebaseAuth' pod 'FirebaseDatabase'Analytics לא מופעל
# 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 'FirebaseAuth' pod 'FirebaseDatabase'
מתקינים את ה-pods ואז פותחים את הקובץ
.xcworkspaceב-Xcode.pod install
open your-app.xcworkspace
מוסיפים מסגרות של Firebase מ-SDK לא מכווץ.
הדרך הכי קלה להוסיף את המסגרות האלה היא בדרך כלל לגרור אותן מחלון
Finderישירות לחלונית Project Navigator של Xcode (החלונית הימנית ביותר, כברירת מחדל, או ללחוץ על סמל הקובץ בפינה הימנית העליונה של Xcode).מוסיפים את Firebase C++ framework
firebase.framework, שהוא חובה לשימוש בכל מוצר של Firebase.מוסיפים את ה-framework לכל מוצר של Firebase שרוצים להשתמש בו. לדוגמה, כדי להשתמש ב-Firebase Authentication, מוסיפים
firebase_auth.framework.
חוזרים למסוף Firebase, בתהליך ההגדרה, ולוחצים על הבא.
אם הוספתם את Analytics, מריצים את האפליקציה כדי לשלוח אימות ל-Firebase שהשילוב של Firebase בוצע בהצלחה. אם לא, אפשר לדלג על שלב האימות הזה.
ביומני המכשיר יוצג אימות Firebase שהאתחול הושלם. אם הפעלתם את האפליקציה באמולטור עם גישה לרשת, מסוף Firebase יודיע לכם שהחיבור לאפליקציה הושלם.
הכול מוכן! אפליקציית C++ שלכם רשומה ומוגדרת לשימוש במוצרי Firebase.
ספריות זמינות
מידע נוסף על ספריות C++ Firebase זמין במאמרי העזרה ובגרסת ה-SDK שלנו בקוד פתוח ב-GitHub.
ספריות שזמינות לפלטפורמות של Apple
שימו לב: ספריות C++ ל-Android מפורטות בגרסת Android של דף ההגדרה הזה.
לכל מוצר של Firebase יש תלות שונה. חשוב להוסיף את כל התלויות (dependencies) שמופיעות ברשימה של מוצר Firebase הרצוי ל-Podfile ולפרויקט C++.
כל מוצר של Firebase תומך רק בחלק מפלטפורמות מערכת ההפעלה של אפל (iOS, tvOS וכו'). במאמר מידע נוסף על C++ ו-Firebase מפורטות הפלטפורמות שנתמכות על ידי כל ספרייה.
| מוצר Firebase | Frameworks ו-Pods |
|---|---|
| Analytics |
(חובה) firebase.frameworkfirebase_analytics.frameworkpod 'FirebaseAnalytics', '12.19.0'
|
| App Check |
(חובה) firebase.frameworkfirebase_app_check.frameworkpod 'FirebaseAppCheck', '12.19.0'
|
| Authentication |
(חובה) firebase.frameworkfirebase_auth.frameworkpod 'FirebaseAuth', '12.19.0'
|
| Cloud Firestore |
(חובה) firebase.frameworkfirebase_firestore.frameworkfirebase_auth.frameworkpod 'FirebaseFirestore', '12.19.0'pod 'FirebaseAuth', '12.19.0'
|
| Cloud Functions |
(חובה) firebase.frameworkfirebase_functions.frameworkpod 'FirebaseFunctions', '12.19.0'
|
| Cloud Messaging |
(חובה) firebase.frameworkfirebase_messaging.framework(מומלץ) firebase_analytics.frameworkpod 'FirebaseMessaging', '12.19.0'(מומלץ) pod 'FirebaseAnalytics', '12.19.0'
|
| Cloud Storage |
(חובה) firebase.frameworkfirebase_storage.frameworkpod 'FirebaseStorage', '12.19.0'
|
| Realtime Database |
(חובה) firebase.frameworkfirebase_database.frameworkpod 'FirebaseDatabase', '12.19.0'
|
| Remote Config |
(חובה) firebase.frameworkfirebase_remote_config.framework(מומלץ) firebase_analytics.frameworkpod 'FirebaseRemoteConfig', '12.19.0'(מומלץ) pod 'FirebaseAnalytics', '12.19.0'
|
| ספריות שהוצאו משימוש או לא נתמכות | |
| Dynamic Links |
(חובה) firebase.frameworkfirebase_dynamic_links.framework(מומלץ) firebase_analytics.frameworkpod 'FirebaseDynamicLinks', '12.19.0'(מומלץ) pod 'FirebaseAnalytics', '12.19.0'
|
מידע נוסף על הגדרה בנייד
Method swizzling
ב-iOS, חלק מהאירועים באפליקציה (כמו פתיחת כתובות URL וקבלת התראות) מחייבים את נציג האפליקציה להטמיע שיטות ספציפיות. לדוגמה, כדי לקבל התראה, יכול להיות שהאפליקציה שלכם תצטרך להטמיע את application:didReceiveRemoteNotification:. מכיוון שלכל אפליקציית iOS יש נציג אפליקציה משלה, Firebase משתמש בהחלפת שיטות, שמאפשרת להחליף שיטה אחת בשיטה אחרת, כדי לצרף את המטפלים שלו בנוסף לכל מטפל שאולי הטמעתם.
הספריות Dynamic Links ו-Cloud Messaging צריכות לצרף מטפלים לנציג האפליקציה באמצעות שינוי פונקציונליות של שיטה. אם אתם משתמשים באחד ממוצרי Firebase האלה, בזמן הטעינה, Firebase יזהה את המחלקה AppDelegate ויבצע החלפה של השיטות הנדרשות, ויקשר קריאה חזרה להטמעה הקיימת של השיטה.
הגדרת תהליך עבודה במחשב (בטא)
כשיוצרים משחק, לרוב קל יותר לבדוק אותו קודם בפלטפורמות למחשב, ואז לפרוס אותו ולבדוק אותו במכשירים ניידים בשלב מאוחר יותר של הפיתוח. כדי לתמוך בתהליך העבודה הזה, אנחנו מספקים קבוצת משנה של ערכות ה-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.