ערכות ה-SDK של Firebase ל-C++ מספקות ממשק C++ על גבי ערכות ה-SDK של Firebase, ומאפשרות לשפר את המשחקים שלכם ב-C++.
גישה ל-Firebase ישירות מתוך קוד ה-C++, בלי לכתוב קוד ייעודי לפלטפורמה. ב-Firebase SDK מתבצעת גם תרגום של ביטויים רבים שספציפיים לשפה שבה נעשה שימוש ב-Firebase, לממשק מוכר יותר למפתחי C++.
מידע נוסף על שיפור המשחקים באמצעות Firebase זמין בדף Firebase למשחקים.
כבר הוספתם את Firebase לפרויקט C++? חשוב לוודא שאתם משתמשים בגרסה העדכנית ביותר של Firebase C++ SDK.
דרישות מוקדמות
מתקינים את הרכיבים הבאים:
- Xcode מגרסה 13.3.1 ואילך
- CocoaPods מגרסה 1.12.0 ואילך
חשוב לוודא שהפרויקט מטרגט את גרסאות הפלטפורמה הבאות או גרסאות מתקדמות יותר:
- iOS 13
- tvOS 13
מגדירים מכשיר פיזי או משתמשים בסימולטור כדי להריץ את האפליקציה.
נכנסים ל-Firebase באמצעות חשבון Google.
שלב 2: יוצרים פרויקט Firebase
לפני שמוסיפים את Firebase לפרויקט C++, צריך ליצור פרויקט Firebase כדי לקשר אותו לפרויקט C++. למידע נוסף על פרויקטים ב-Firebase, אפשר לעיין במאמר הסבר על פרויקטים ב-Firebase.
שלב 3: רישום האפליקציה ב-Firebase
כדי להשתמש ב-Firebase באפליקציה ל-Apple, צריך לרשום את האפליקציה לפרויקט ב-Firebase. לעיתים קרובות, רישום האפליקציה נקרא 'הוספת' האפליקציה לפרויקט.
נכנסים למסוף Firebase.
במרכז הדף 'סקירה כללית של הפרויקט', לוחצים על הסמל iOS+ כדי להפעיל את תהליך העבודה להגדרה.
אם כבר הוספתם אפליקציה לפרויקט Firebase, לוחצים על הוספת אפליקציה כדי להציג את אפשרויות הפלטפורמה.
מזינים את מזהה החבילה של האפליקציה בשדה bundle ID.
(אופציונלי) מזינים פרטים נוספים על האפליקציה: הכינוי של האפליקציה ומזהה App Store.
לוחצים על רישום האפליקציה.
שלב 4: מוסיפים את קובץ התצורה של Firebase
לוחצים על Download GoogleService-Info.plist כדי לקבל את קובץ התצורה של Firebase לפלטפורמות של Apple.
פותחים את פרויקט ה-C++ בסביבת פיתוח משולבת (IDE), וגוררים את קובץ התצורה לתיקיית השורש של פרויקט ה-C++.
אם מוצגת בקשה, בוחרים להוסיף את קובץ התצורה לכל היעדים.
סיימתם את משימות ההגדרה במסוף Firebase. ממשיכים למטה לקטע הוספת Firebase C++ SDKs.
שלב 5: מוסיפים את ערכות ה-SDK של Firebase ל-C++
השלבים בקטע הזה הם דוגמה לאופן שבו מוסיפים מוצרי Firebase נתמכים לפרויקט Firebase ב-C++.
מורידים את Firebase C++ SDK ומחלצים את ה-SDK למקום נוח.
ערכת ה-SDK של Firebase C++ היא לא ספציפית לפלטפורמה, אבל היא מכילה ספריות ספציפיות לפלטפורמה.
מוסיפים 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).מוסיפים את מסגרת ה-C++ של Firebase
firebase.framework
, שנדרשת לשימוש בכל מוצר של Firebase.מוסיפים את המסגרת לכל מוצר Firebase שבו רוצים להשתמש. לדוגמה, כדי להשתמש ב-Firebase Authentication, מוסיפים את
firebase_auth.framework
.
חוזרים למסוף Firebase, בתהליך ההגדרה לוחצים על Next.
אם הוספתם את Analytics, מריצים את האפליקציה כדי לשלוח ל-Firebase אישור על כך שהשלמתם את השילוב של Firebase. אם לא, אפשר לדלג על שלב האימות הזה.
ביומני המכשיר יופיע האימות של Firebase על השלמת האיפוס. אם הפעלתם את האפליקציה במהדמה שיש לה גישה לרשת, תקבלו הודעה במסוף Firebase על כך שהחיבור לאפליקציה הושלם.
הכול מוכן. האפליקציה ב-C++ רשומה ומוגדר בה שימוש במוצרי Firebase.
ספריות זמינות
מידע נוסף על ספריות Firebase ל-C++ זמין במסמכי העזרה ובגרסת ה-SDK שלנו לקוד פתוח ב-GitHub.
ספריות זמינות לפלטפורמות של Apple
הערה: ספריות C++ ל-Android מפורטות בגרסה ל-Android של דף ההגדרה הזה.
לכל מוצר של Firebase יש יחסי תלות שונים. חשוב להוסיף את כל התלויות המפורטות של מוצר Firebase הרצוי ל-Podfile ולפרויקט C++.
יכול להיות שכל מוצר של Firebase יתמוך רק בחלק מפלטפורמות מערכת ההפעלה של Apple (iOS, tvOS וכו'). מידע נוסף על C++ ו-Firebase
מוצר Firebase | מסגרות ו-Pods |
---|---|
AdMob |
(חובה) firebase.framework firebase_admob.framework (חובה) firebase_analytics.framework pod 'FirebaseAdMob', '11.4.2' (חובה) pod 'FirebaseAnalytics', '11.4.2'
|
Analytics |
(חובה) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '11.4.2'
|
App Check |
(חובה) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '11.4.2'
|
Authentication |
(חובה) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '11.4.2'
|
Cloud Firestore |
(חובה) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '11.4.2' pod 'FirebaseAuth', '11.4.2'
|
Cloud Functions |
(חובה) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '11.4.2'
|
Cloud Messaging |
(חובה) firebase.framework firebase_messaging.framework (מומלץ) firebase_analytics.framework pod 'FirebaseMessaging', '11.4.2' (מומלץ) pod 'FirebaseAnalytics', '11.4.2'
|
Cloud Storage |
(חובה) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '11.4.2'
|
Dynamic Links |
(חובה) firebase.framework firebase_dynamic_links.framework (מומלץ) firebase_analytics.framework pod 'FirebaseDynamicLinks', '11.4.2' (מומלץ) pod 'FirebaseAnalytics', '11.4.2'
|
Realtime Database |
(חובה) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '11.4.2'
|
Remote Config |
(חובה) firebase.framework firebase_remote_config.framework (מומלץ) firebase_analytics.framework pod 'FirebaseRemoteConfig', '11.4.2' (מומלץ) pod 'FirebaseAnalytics', '11.4.2'
|
מידע נוסף על הגדרת מודעות לנייד
שינוי פונקציונליות של שיטה
ב-iOS, כדי שתתרחשו אירועים מסוימים באפליקציה (כמו פתיחת כתובות URL וקבלת התראות), נציג האפליקציה צריך להטמיע שיטות ספציפיות. לדוגמה, יכול להיות שקבלת התראה תחייב את הנציג של האפליקציה להטמיע את application:didReceiveRemoteNotification:
. מכיוון שלכל אפליקציה ל-iOS יש נציג אפליקציה משלה, מערכת Firebase משתמשת בהחלפת שיטות (method swizzling) כדי לצרף מנהלים משלה בנוסף לכל מנהל שהוספתם. החלפת שיטות מאפשרת להחליף שיטה אחת בשיטה אחרת.
ספריות Dynamic Links ו-Cloud Messaging צריכות לצרף מנהלים לנציג האפליקציה באמצעות החלפת שיטות (method swizzling). אם אתם משתמשים באחד מהמוצרים האלה של Firebase, בזמן הטעינה מערכת Firebase תזהה את הכיתה AppDelegate
ותבצע בה החלפה של השיטות הנדרשות, תוך יצירת שרשור של קריאה חוזרת להטמעת השיטות הקיימת.
הגדרת תהליך עבודה במחשב (בטא)
כשאתם יוצרים משחק, בדרך כלל קל יותר לבדוק אותו קודם בפלטפורמות למחשב, ולאחר מכן לפרוס ולבדוק אותו במכשירים ניידים בשלב מאוחר יותר בפיתוח. כדי לתמוך בתהליך העבודה הזה, אנחנו מספקים קבוצת משנה של ערכות ה-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.