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

משפרים את משחקי C++‎ בעזרת Firebase C++ SDKs, שמספקים ממשק C++‎ על גבי Firebase SDKs.

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

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

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


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

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

    • ‫Xcode 16.2 ואילך
    • ‫CocoaPods 1.12.0 ואילך
  • צריך לוודא שהפרויקט מיועד לגרסאות הפלטפורמה הבאות או לגרסאות חדשות יותר:

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

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

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

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

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

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

  1. עוברים אל מסוף Firebase.

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

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

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

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

  5. לוחצים על רישום האפליקציה.

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

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

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

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

סיימתם להגדיר משימות במסוף Firebase. בהמשך מוסבר איך להוסיף את Firebase C++ SDKs.

שלב 5: מוסיפים את Firebase C++ SDKs

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

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

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

  2. מוסיפים pods של Firebase מתוך ה-SDK שחולץ.

    1. צריך ליצור Podfile אם אין עדיין:

      cd your-app-directory
      pod init

    2. מוסיפים ל-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'
    3. מתקינים את ה-pods ואז פותחים את הקובץ .xcworkspace ב-Xcode.

      pod install
      open your-app.xcworkspace

  3. מוסיפים frameworks של Firebase מתוך ה-SDK שחולץ.

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

    1. מוסיפים את Firebase C++ framework firebase.framework, שהוא חובה לשימוש בכל מוצר של Firebase.

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

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

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

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

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

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

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

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

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

לכל מוצר של Firebase יש תלות שונה. חשוב להוסיף את כל התלויות (dependencies) שמופיעות ברשימה של מוצר Firebase הרצוי ל-Podfile ולפרויקט C++‎.

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

מוצר Firebase Frameworks ו-Pods
AdMob (חובה) firebase.framework
firebase_admob.framework
(חובה) firebase_analytics.framework

pod 'FirebaseAdMob', '12.0.0'
(חובה) pod 'FirebaseAnalytics', '12.0.0'
Analytics (חובה) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '12.0.0'
App Check (חובה) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '12.0.0'
Authentication (חובה) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '12.0.0'
Cloud Firestore (required) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '12.0.0'
pod 'FirebaseAuth', '12.0.0'
Cloud Functions (חובה) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '12.0.0'
Cloud Messaging (חובה) firebase.framework
firebase_messaging.framework
(מומלץ) firebase_analytics.framework

pod 'FirebaseMessaging', '12.0.0'
(מומלץ) pod 'FirebaseAnalytics', '12.0.0'
Cloud Storage (חובה) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '12.0.0'
Dynamic Links (חובה) firebase.framework
firebase_dynamic_links.framework
(מומלץ) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '12.0.0'
(מומלץ) pod 'FirebaseAnalytics', '12.0.0'
Realtime Database (חובה) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '12.0.0'
Remote Config (חובה) firebase.framework
firebase_remote_config.framework
(מומלץ) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '12.0.0'
(מומלץ) pod 'FirebaseAnalytics', '12.0.0'

מידע נוסף על הגדרת אפליקציות לנייד

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

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

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

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

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

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

    1. מגדירים את פרויקט C++‎ ל-CMake.
    2. יצירת פרויקט Firebase
    3. רישום האפליקציה (iOS או Android) ב-Firebase
    4. הוספת קובץ תצורה של Firebase לפלטפורמה לנייד
  2. יוצרים גרסת דסקטופ של קובץ ההגדרות של Firebase:

    • אם הוספתם את קובץ Android‏ google-services.json – כשמריצים את האפליקציה, 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. מוסיפים את Firebase SDKs לפרויקט C++‎.

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

    1. מגדירים את משתנה הסביבה FIREBASE_CPP_SDK_DIR למיקום של Firebase SDK C++ שלא נפרס.

    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++.

ספריות זמינות (במחשב)

Firebase C++ SDK כולל תמיכה בתהליכי עבודה במחשב עבור קבוצת משנה של תכונות, ומאפשר להשתמש בחלקים מסוימים של Firebase בגרסאות עצמאיות למחשב ב-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 מספק את שאר הספריות למחשב כהטמעות stub (לא פונקציונליות) לנוחות כשמפתחים ל-Windows, ל-macOS ול-Linux. לכן, אין צורך לבצע קומפילציה מותנית של קוד כדי לטרגט את המחשב.

Realtime Database מחשב

ערכת ה-SDK של Realtime Database למחשב משתמשת ב-REST כדי לגשת למסד הנתונים, ולכן צריך להצהיר על האינדקסים שבהם משתמשים עם Query::OrderByChild() במחשב, אחרת המאזינים ייכשלו.

מידע נוסף על הגדרה במחשב

ספריות Windows

ב-Windows, גרסאות הספרייה מסופקות על סמך:

  • פלטפורמת ה-build: מצב 32 ביט (x86) לעומת מצב 64 ביט (x64)
  • סביבת זמן ריצה של Windows: Multithreaded / MT לעומת Multithreaded DLL /MD
  • יעד: גרסת Release לעומת גרסת Debug

שימו לב: הספריות הבאות נבדקו באמצעות 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 16.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.

השלבים הבאים