הוספת Firebase לפרויקט C++

אתם יכולים לשפר את משחקי ה-C++‎ שלכם באמצעות ערכות ה-Firebase C++ SDK, שמספקות ממשק C++‎ בנוסף לערכות ה-Firebase SDK.

אפשר לגשת ל-Firebase ישירות מקוד C++‎, בלי לכתוב קוד Native לפלטפורמה. בנוסף, Firebase SDK מתרגם הרבה ביטויים ספציפיים לשפה שבהם משתמשים ב-Firebase לממשק שמוכר יותר למפתחי C++‎.

מידע נוסף על שיפור המשחקים באמצעות Firebase זמין בדף המשחקים של Firebase.

כבר הוספתם את Firebase לפרויקט C++‎? חשוב לוודא שאתם משתמשים בגרסה העדכנית של ערכת ה-SDK של Firebase C++.


דרישות מוקדמות

  • מתקינים את הכלים הבאים:

    • ‫Xcode 26.2 ואילך
  • מוודאים שהפרויקט מטרגט את גרסאות הפלטפורמה הבאות או גרסאות חדשות יותר:

    • iOS 15
    • tvOS 15
  • מגדירים מכשיר פיזי או משתמשים בסימולטור כדי להפעיל את האפליקציה.

  • נכנסים ל-Firebase באמצעות חשבון Google.

שלב 2: יוצרים פרויקט ב-Firebase

כדי להוסיף את Firebase לפרויקט C++‎, צריך ליצור פרויקט Firebase ולקשר אותו לפרויקט C++‎. במאמר הסבר על פרויקטים ב-Firebase תוכלו לקרוא מידע נוסף על פרויקטים ב-Firebase.

שלב 3: רושמים את האפליקציה ב-Firebase

כדי להשתמש ב-Firebase באפליקציה ל-Apple, צריך לרשום את האפליקציה בפרויקט Firebase. רישום האפליקציה נקרא לעיתים קרובות "הוספת" האפליקציה לפרויקט.

  1. נכנסים למסוף Firebase.

  2. במרכז דף הסקירה הכללית של הפרויקט, לוחצים על הסמל iOS+‎ כדי להפעיל את תהליך ההגדרה.

    אם כבר הוספתם אפליקציה לפרויקט ב-Firebase, לוחצים על Add app כדי להציג את האפשרויות לפלטפורמות.

  3. מזינים את מזהה החבילה של האפליקציה בשדה מזהה חבילה.

  4. (אופציונלי) מזינים פרטים נוספים על האפליקציה: כינוי לאפליקציה ומזהה App Store.

  5. לוחצים על Register app.

שלב 4: מוסיפים את קובץ התצורה של Firebase

  1. לוחצים על Download GoogleService-Info.plist כדי לקבל את קובץ התצורה של Firebase לפלטפורמות של אפל.

  2. פותחים את פרויקט ה-C++‎ בסביבת פיתוח משולבת (IDE) וגוררים את קובץ התצורה לתיקיית השורש של הפרויקט.

  3. אם מוצגת בקשה, בוחרים להוסיף את קובץ התצורה לכל היעדים.

סיימתם את משימות ההגדרה במסוף Firebase. ממשיכים לקטע הוספת ערכות Firebase C++ SDK שבהמשך.

שלב 5: הוספת ערכות Firebase C++ SDK

השלבים בקטע הזה הם דוגמה להוספת מוצרי Firebase נתמכים לפרויקט Firebase ב-C++‎.

  1. מורידים את Firebase C++ SDK, ואז מחלצים את קובצי ה-SDK למיקום נוח.

    ערכת ה-SDK של Firebase C++ לא ספציפית לפלטפורמה, אבל היא מכילה ספריות ספציפיות לפלטפורמה.

  2. אתם יכולים להשתמש ב-Swift Package Manager כדי להתקין ולנהל את יחסי התלות של Firebase Apple platforms SDK.

    1. ב-Xcode, כשהפרויקט של האפליקציה פתוח, עוברים אל File > Add Package Dependencies (קובץ > הוספת יחסי תלות של חבילות).

    2. כשמוצגת בקשה, מוסיפים את מאגר ה-SDK של Firebase לפלטפורמות של אפל:

      https://github.com/firebase/firebase-ios-sdk.git

    3. בכלל התלות, בוחרים באפשרות Exact Version ומזינים את הערך 13.1.1.

    4. בוחרים את ספריות Firebase שרוצים להשתמש בהן באפליקציה (לדוגמה, FirebaseAuth ו-FirebaseDatabase). אם Google Analytics מופעל בפרויקט Firebase, חשוב להוסיף את FirebaseAnalytics.

    אחרי שתסיימו, פלטפורמת Xcode תתחיל לטפל ביחסי התלות ולהוריד אותם ברקע באופן אוטומטי.

  3. מוסיפים את XCFrameworks של Firebase מהספרייה xcframeworks של ה-SDK שחולץ.

    הדרך הקלה ביותר להוסיף את ה-XCFrameworks האלה היא בדרך כלל לגרור אותם מחלון Finder ישירות לחלונית Project Navigator של Xcode (החלונית השמאלית ביותר, כברירת מחדל, או ללחוץ על סמל הקובץ בפינה השמאלית העליונה של Xcode) ולהוסיף אותם ליעד ה-build של האפליקציה.

    1. מוסיפים את Firebase C++ XCFramework firebase.xcframework, שנדרש כדי להשתמש בכל מוצר של Firebase.

    2. מוסיפים את ה-XCFramework לכל מוצר של Firebase שרוצים להשתמש בו. לדוגמה, כדי להשתמש ב-Firebase Authentication, צריך להוסיף את firebase_auth.xcframework.

  4. חוזרים למסוף Firebase, ובתהליך העבודה של ההגדרה לוחצים על Next.

  5. אם הוספת את Analytics, צריך להפעיל את האפליקציה כדי לשלוח אימות ל-Firebase על כך שהשילוב של Firebase בוצע בהצלחה. אם לא, אפשר לדלג על שלב האימות הזה.

    בקובצי היומן של המכשיר יוצג אימות Firebase שההפעלה הושלמה. אם הפעלתם את האפליקציה באמולטור שיש לו גישה לרשת, תקבלו הודעה במסוף Firebase שהחיבור של האפליקציה הושלם.

הכול מוכן! אפליקציית C++‎ רשומה ומוגדרת לשימוש במוצרי Firebase.

ספריות זמינות

מידע נוסף על ספריות Firebase ב-C++‎ זמין במאמרי העזרה ובגרסת ה-SDK בקוד פתוח ב-GitHub.

ספריות זמינות לפלטפורמות של Apple

שימו לב שספריות C++‎ ל-Android מפורטות בגרסת Android של דף ההגדרה הזה.

לכל מוצר של Firebase יש יחסי תלות שונים. הקפידו להוסיף את כל יחסי התלות שרשומים למוצר Firebase שנבחר באמצעות Swift Package Manager ובפרויקט C++‎.

כל מוצר של Firebase תומך רק בחלק מהפלטפורמות של מערכת ההפעלה של אפל (iOS,‏ tvOS וכו'). במאמר מידע נוסף על C++‎ ו-Firebase מפורט באילו פלטפורמות כל ספרייה תומכת.

מוצר של Firebase ספריות XCFrameworks ו-Swift Package Manager
Analytics (חובה) firebase.xcframework
firebase_analytics.xcframework

FirebaseAnalytics (13.1.1)
App Check (חובה) firebase.xcframework
firebase_app_check.xcframework

FirebaseAppCheck (13.1.1)
Authentication (חובה) firebase.xcframework
firebase_auth.xcframework

FirebaseAuth (13.1.1)
Cloud Firestore (חובה) firebase.xcframework
firebase_firestore.xcframework
firebase_auth.xcframework

FirebaseFirestore (13.1.1)
FirebaseAuth (13.1.1)
Cloud Functions (חובה) firebase.xcframework
firebase_functions.xcframework

FirebaseFunctions (13.1.1)
Cloud Messaging (חובה) firebase.xcframework
firebase_messaging.xcframework
(מומלץ) firebase_analytics.xcframework

FirebaseMessaging (13.1.1)
(מומלץ) FirebaseAnalytics (13.1.1)
Cloud Storage (חובה) firebase.xcframework
firebase_storage.xcframework

FirebaseStorage (13.1.1)
Realtime Database (חובה) firebase.xcframework
firebase_database.xcframework

FirebaseDatabase (13.1.1)
Remote Config (חובה) firebase.xcframework
firebase_remote_config.xcframework
(מומלץ) firebase_analytics.xcframework

FirebaseRemoteConfig (13.1.1)
(מומלץ) FirebaseAnalytics (13.1.1)
ספריות שהוצאו משימוש או שלא נתמכות
Dynamic Links (חובה) firebase.xcframework
firebase_dynamic_links.xcframework
(מומלץ) firebase_analytics.xcframework

FirebaseDynamicLinks (13.1.1)
(מומלץ) FirebaseAnalytics (13.1.1)

מידע נוסף על הגדרת המכשיר הנייד

שילוב בלי להשתמש ב-Swift Package Manager

אם אתם לא רוצים להשתמש ב-Swift Package Manager כדי לנהל את יחסי התלות הבסיסיים של Firebase Apple platforms SDK, עיינו בקטע שילוב בלי להשתמש ב-Swift Package Manager במדריך ההגדרה של פלטפורמות Apple כדי לקבל אפשרויות שילוב חלופיות.

שינוי פונקציונליות של שיטה

ב-iOS, אירועים מסוימים באפליקציה (כמו פתיחת כתובות URL וקבלת התראות) מחייבים את נציג האפליקציה להטמיע שיטות ספציפיות. לדוגמה, כדי לקבל התראה, יכול להיות שתצטרכו להטמיע את application:didReceiveRemoteNotification: ב-application delegate. לכל אפליקציה ל-iOS יש נציג משלה, ולכן Firebase משתמשת בשינוי פונקציונליות של שיטה, שמאפשר להחליף שיטה אחת באחרת, כדי לצרף פונקציות טיפול משלה בנוסף לאלה שהטמעתם.

הספריות Dynamic Links ו-Cloud Messaging צריכות לצרף פונקציות handler לנציג האפליקציה באמצעות שינוי פונקציונליות של שיטה. אם אתם משתמשים באחד ממוצרי Firebase האלה, בזמן הטעינה Firebase יזהה את המחלקה AppDelegate ויחליף את השיטות הנדרשות, ויקשר קריאה חוזרת להטמעת השיטה הקיימת.

הגדרת תהליך עבודה במחשב (בטא)

כשיוצרים משחק, בדרך כלל הרבה יותר קל לבדוק אותו קודם בפלטפורמות למחשב, ואז לפרוס ולבדוק אותו במכשירים ניידים בשלב מאוחר יותר של הפיתוח. כדי לתמוך בתהליך העבודה הזה, אנחנו מספקים קבוצת משנה של ערכות ה-SDK של Firebase C++ שיכולות לפעול ב-Windows, ב-macOS, ב-Linux ומתוך עורך C++‎.

  1. בתהליכי עבודה במחשב, צריך לבצע את הפעולות הבאות:

    1. מגדירים את פרויקט ה-C++‎ ל-CMake.
    2. יצירת פרויקט ב-Firebase
    3. רושמים את האפליקציה (iOS או Android) ב-Firebase
    4. הוספת קובץ תצורה של Firebase לפלטפורמה לנייד
  2. יוצרים גרסת מחשב של קובץ התצורה של 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.

  3. מוסיפים את ערכות ה-SDK של Firebase לפרויקט ב-C++‎.

    השלבים הבאים הם דוגמה להוספת כל מוצר נתמך של Firebase לפרויקט C++‎. בדוגמה הזו נסביר איך מוסיפים את Firebase Authentication ו-Firebase Realtime Database.

    1. מגדירים את משתנה הסביבה FIREBASE_CPP_SDK_DIR למיקום של ה-SDK של Firebase C++ אחרי שחילצתם אותו מקובץ ה-ZIP.

    2. מוסיפים לקובץ 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}")
  4. מריצים את אפליקציית 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

כדי שיהיה נוח יותר לפתח ל-Windows, ל-macOS ול-Linux, ‏ Firebase מספקת את שאר הספריות למחשב כהטמעות של stub (לא פונקציונליות). לכן, אין צורך להדר קוד באופן מותנה כדי לטרגט למחשב.

מחשב Realtime Database

ערכת ה-SDK של Realtime Database למחשב משתמשת ב-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 ביט (x86_64). אנחנו מספקים גם מסגרות לנוחותכם.

שימו לב שהספריות של macOS נבדקו באמצעות Xcode 26.2.

כשמפתחים אפליקציות C++‎ למחשב ב-macOS, צריך לקשר את הפריטים הבאים לפרויקט:

  • ספריית מערכת אחת (pthread)
  • CoreFoundation מסגרת המערכת של macOS
  • Foundation מסגרת המערכת של macOS
  • Security מסגרת המערכת של macOS
  • GSS מסגרת המערכת של macOS
  • Kerberos מסגרת המערכת של macOS
  • SystemConfiguration מסגרת המערכת של 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.

השלבים הבאים