Catch up on everthing we announced at this year's Firebase Summit. Learn more

הוסף את Firebase לפרויקט C++ שלך

הפעל את משחקי C++ שלך עם Firebase C++ SDK שלנו המספקים ממשק C++ על גבי Firebase עבור iOS ועבור Android.

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

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

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

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

  • התקן את העורך או ה-IDE המועדפים עליך, כגון Android Studio, IntelliJ או VS Code.

  • השג את SDK אנדרואיד .

  • ודא שהפרויקט שלך עומד בדרישות הבאות:

  • הגדר מכשיר פיזי או השתמש באמולטור כדי להפעיל את האפליקציה שלך.

    • אמולטורים חייבים להשתמש בתמונת אמולטור השימוש ב- Google Play.

    • עבור חלק מספריות C++, שירותי Google Play נדרשים במכשיר הלקוח; לסקור את הרשימה בדף זה.

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

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

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

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

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

  1. עבור אל קונסולת Firebase .

  2. במרכז דף סקירת הפרויקט, לחץ על סמל אנדרואיד ( ) או להוסיף ליישום להפעיל את זרימת עבודת ההתקנה.

  3. הזן שם החבילה של האפליקציה בשדה שם חבילה ב- Android.

  4. (אופציונאלי) זן פרטי אפליקציה אחרים: כינוי App ו Debug חתימת אישור SHA-1.

  5. לחץ אפליקצית רישום.

שלב 4: הוספת קובץ התצורה Firebase

  1. לחץ על Download Google-services.json להשיג קובץ config Firebase אנדרואיד שלך.

  2. פתח את פרויקט C++ שלך ב-IDE, ולאחר מכן הוסף את קובץ התצורה שלך לפרויקט שלך:

  3. (Gradle בונה בלבד) כדי להפעיל שירותי Firebase בפרויקט C ++ שלך, להוסיף את השירותים Google תוסף כדי ברמה העליונה build.gradle קובץ.

    1. הוסף כללים כדי לכלול את הפלאגין של שירותי 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.3.10'  // Google Services plugin
            implementation 'com.google.android.gms:17.6.0'
          }
        }
      
        allprojects {
          // ...
      
          repositories {
            // Check that you have the following line (if not, add it):
            google()  // Google's Maven repository
            // ...
          }
        }
      
    2. החל את הפלאגין של שירותי Google Gradle:

        apply plugin: 'com.android.application'
        // Add the following line:
        apply plugin: 'com.google.gms.google-services'  // Google Services plugin
      
        android {
          // ...
        }
      
  4. סיימת להגדיר משימות במסוף Firebase. המשך להוסיף ערכות SDK ++ C Firebase להלן.

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

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

  1. הורד את ה- SDK Firebase C ++ , אז לפתוח את SDK איפשהו נוח.

    Firebase C++ SDK אינו ספציפי לפלטפורמה, אך הוא מכיל ספריות ספציפיות לפלטפורמה.

  2. בפרויקט שלך זה gradle.properties קובץ, לציין את המיקום של ה- SDK רוכסן:

    systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
    
  3. כדי הפרויקט שלך 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"
    
  4. כדי מודול שלך (ברמת היישום) קובץ 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
    }
    
  5. כדי הפרויקט שלך 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}")
    
  6. סנכרן את האפליקציה שלך כדי להבטיח שלכל התלות יש את הגרסאות הדרושות.

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

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

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

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

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

ספריות זמינות עבור אנדרואיד (באמצעות CMake)

שים לב כי ספריות ++ C עבור iOS מפורטות על גרסת iOS של דף הגדרות זה .

מוצר Firebase הפניות לספרייה
( firebaseCpp.dependencies
עבור build.gradle קובץ)
הפניות לספרייה
( firebase_libs
עבור CMakeLists.txt קובץ)
AdMob admob firebase_admob
(חובה) firebase_analytics
(חובה) firebase_app
ניתוח analytics firebase_analytics
(חובה) 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 משאבים שאתה יכול לכלול בפרויקט שלך. סקריפט זה מחיל את אותה שינוי שמבצע התוסף Gradle שירותי Google Play בעת בניית אפליקציות אנדרואיד.

אם אינך לבנות באמצעות Gradle (למשל, אתה משתמש NDK-לבנות, makefiles, Visual Studio, וכו '), אתה יכול להשתמש בסקריפט זה כדי להפוך את הדור של משאבי מחרוזת אנדרואיד .

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 כדי להיות על מכשיר אנדרואיד של הלקוח. אם מחזיר לספרייה ++ C Firebase 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 .

הגדרת עבודת שולחן עבודה (בטא)

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

  1. עבור זרימות עבודה בשולחן העבודה, עליך להשלים את הפעולות הבאות:

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

    • אם אתה מוסיף גם את אנדרואיד google-services.json קובץ - בעת הפעלת האפליקציה שלך, Firebase מאתרת קובץ הנייד הזה, אז באופן אוטומטי קובץ config Firebase שולחניים ( google-services-desktop.json ).

    • אם אתה מוסיף גם את iOS GoogleService-Info.plist קובץ - לפני שתפעיל את היישום שלך, אתה צריך להמיר קובץ נייד זה לקובץ config Firebase שולחן העבודה. כדי להמיר את הקובץ, הפעל את הפקודה הבאה מאותה ספרייה כמו שלך GoogleService-Info.plist הקובץ:

      generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist

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

  3. הוסף ערכות פיתוח של Firebase לפרויקט C++ שלך.

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

    1. הגדר שלך FIREBASE_CPP_SDK_DIR משתנה הסביבה למיקום של SDK Firebase 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)
אימות 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. לכן, אינך צריך להדר קוד באופן מותנה כדי למקד לשולחן העבודה.

שולחן העבודה של מסד נתונים בזמן אמת

ה- 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
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 12.

בעת בניית אפליקציות 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 על לינוקס, לקשר את pthread ספריית מערכת לפרויקט שלך. עיין בתיעוד המהדר שלך למידע נוסף. אם הבניין נמצא עם GCC 5 או מאוחר יותר, מגדירים -D_GLIBCXX_USE_CXX11_ABI=0 .

הצעדים הבאים