Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. Learn more

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

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

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

גלה מידע נוסף אודות הפעלת המשחקים שלך באמצעות Firebase בדף המשחקים שלנו ב- Firebase .

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

תנאים מוקדמים

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

  • השג את ה- SDK של Android .

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

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

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

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

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

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

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

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

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

  1. עבור למסוף Firebase .

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

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

  4. (אופציונלי) הזן מידע אחר על האפליקציה: כינוי לאפליקציה ואישור חתימת ניפוי שגיאות SHA-1 .

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

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

  1. לחץ על הורד google-services.json כדי להשיג את קובץ התצורה של Android ב- Firebase.

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

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

    1. הוסף כללים כדי לכלול את התוסף Google Services 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.8'  // 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 Services Gradle:

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

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

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

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

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

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

    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. הוסף את הקובץ app/build.gradle למודול שלך (ברמת האפליקציה) (בדרך כלל app/build.gradle ):

    android.defaultConfig.externalNativeBuild.cmake {
      arguments "-DFIREBASE_CPP_SDK_DIR=$gradle.firebase_cpp_sdk_dir"
    }
    
    apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle"
    firebaseCpp.dependencies {
      analytics
    }
    
  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}")
    

    ניתוח לא מופעל

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

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

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

מוצר Firebase הפניות לספרייה (באמצעות CMake)
AdMob firebase_admob
(חובה) firebase_analytics
(חובה) firebase_app
ניתוח firebase_analytics
(חובה) firebase_app
אימות firebase_auth
(חובה) firebase_app
Cloud Firestore (בטא) firebase_firestore
(חובה) firebase_app
(חובה) firebase_auth
פונקציות ענן firebase_functions
(חובה) firebase_app
מסרים בענן firebase_messaging
(מומלץ) firebase_analytics
(חובה) firebase_app
אחסון בענן firebase_storage
(חובה) firebase_app
קישורים דינמיים firebase_dynamic_links
(מומלץ) firebase_analytics
(חובה) firebase_app
מסד נתונים בזמן אמת firebase_database
(חובה) firebase_app
תצורה מרחוק 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 בעת בניית יישומי Android.

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

פרוגארד

מערכות בניית אנדרואיד רבות משתמשות ב- 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 יהיו במכשיר ה- Android של הלקוח. אם ספריית Firebase C ++ מחזירה kInitResultFailedMissingDependency בעת אתחול, פירוש הדבר ששירותי Google Play אינם זמינים במכשיר הלקוח (כלומר יש לעדכן אותם, להפעילם מחדש, לתקן הרשאות וכו '). לא ניתן להשתמש בספריית Firebase עד לתיקון המצב במכשיר הלקוח.

תוכל לברר מדוע שירותי Google Play אינם זמינים במכשיר הלקוח (ולנסות לתקן זאת) על ידי שימוש בפונקציות ב- google_play_services/availability.h .

הטבלה הבאה מפרטת האם נדרשים שירותי Google Play במכשיר לקוח עבור כל מוצר Firebase נתמך.

ספריית Firebase C ++ שירותי Google Play נדרשים במכשיר הלקוח?
AdMob לא חובה (בדרך כלל)
ניתוח לא דרוש
אימות נדרש
ענן 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 .

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

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

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

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

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

  3. הוסף SDK של Firebase לפרויקט C ++ שלך.

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

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

    2. לקובץ CMakeLists.txt של הפרויקט שלך, הוסף את התוכן הבא, כולל הספריות של מוצרי Firebase שבהם ברצונך להשתמש. לדוגמא, כדי להשתמש באימות Firebase ובסיס נתונים בזמן אמת של 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 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 בבניית שולחן עבודה עצמאית ב- 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 מספקת את ספריות שולחן העבודה הנותרות כיישומי stub (לא פונקציונליים) לנוחיותכם בעת בנייה עבור Windows, MacOS ו- Linux. לכן, אינך צריך לערוך קוד על מנת להתמקד בשולחן העבודה.

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

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

מידע נוסף להתקנת שולחן העבודה

ספריות חלונות

עבור 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
ענן 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
  • מסגרת מערכת MacOS Security
  • מסגרת מערכת ה- macOS של GSS
  • Kerberos במסגרת מערכת MacOS
  • מסגרת מערכת MacOS SystemConfiguration

עיין בתיעוד המהדר שלך למידע נוסף.

ספריות לינוקס

עבור לינוקס, גרסאות הספריה מסופקות לפלטפורמות 32 סיביות (i386) ו- 64 סיביות (x86_64).

שים לב שספריות לינוקס נבדקו באמצעות GCC 4.8.0, GCC 7.2.0 ו- Clang 5.0 באובונטו.

בעת בניית יישומי שולחן עבודה C ++ ב- Linux, קשר את ספריית המערכת pthread לפרויקט שלך. עיין בתיעוד המהדר שלך למידע נוסף. אם אתה בונה עם GCC 5 ואילך, הגדר -D_GLIBCXX_USE_CXX11_ABI=0 .

הצעדים הבאים