Tăng sức mạnh cho trò chơi C++ của bạn bằng SDK C++ của Firebase, cung cấp giao diện C++ trên Firebase SDK.
Truy cập Firebase hoàn toàn từ mã C++ mà không cần phải viết bất kỳ mã gốc nào của nền tảng. Firebase SDK cũng dịch nhiều thành ngữ theo ngôn ngữ cụ thể mà Firebase sử dụng sang một giao diện quen thuộc hơn với nhà phát triển C++.
Tìm hiểu thêm thông tin về cách tăng cường trò chơi bằng Firebase trên trang trò chơi Firebase của chúng tôi.
Bạn đã thêm Firebase vào dự án C++ chưa? Đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của SDK Firebase C++.
Điều kiện tiên quyết
Cài đặt trình chỉnh sửa hoặc IDE mà bạn muốn, chẳng hạn như Android Studio, IntelliJ hoặc VS Code.
Tải SDK Android.
Đảm bảo rằng dự án của bạn đáp ứng các yêu cầu sau:
Nhắm đến cấp độ API mục tiêu 24 (Nougat) trở lên
Sử dụng Gradle và được định cấu hình bằng CMake
Thiết lập thiết bị thực hoặc sử dụng trình mô phỏng để chạy ứng dụng.
Trình mô phỏng phải sử dụng hình ảnh trình mô phỏng có Google Play.
Đối với một số thư viện C++, thiết bị khách cần có Dịch vụ Google Play; hãy xem danh sách trên trang này.
Đăng nhập vào Firebase bằng Tài khoản Google của bạn.
Bước 2: Tạo dự án Firebase
Trước khi có thể thêm Firebase vào dự án C++, bạn cần tạo một dự án Firebase để kết nối với dự án C++. Hãy truy cập vào bài viết Tìm hiểu về các dự án Firebase để tìm hiểu thêm về các dự án Firebase.
Bước 3: Đăng ký ứng dụng của bạn với Firebase
Để sử dụng Firebase trong ứng dụng Android, bạn cần đăng ký ứng dụng với dự án Firebase. Việc đăng ký ứng dụng thường được gọi là "thêm" ứng dụng vào dự án.
Chuyển đến bảng điều khiển Firebase.
Ở giữa trang tổng quan của dự án, hãy nhấp vào biểu tượng Android () hoặc Thêm ứng dụng để chạy quy trình thiết lập.
Nhập tên gói của ứng dụng vào trường Tên gói Android.
(Không bắt buộc) Nhập Biệt hiệu ứng dụng. Đây là giá trị nhận dạng nội bộ, thuận tiện và chỉ bạn mới thấy được trong bảng điều khiển Firebase.
Nhấp vào Register app (Đăng ký ứng dụng).
Bước 4: Thêm tệp cấu hình Firebase
Nhấp vào Tải google-services.json xuống để lấy tệp cấu hình Android của Firebase.
Mở dự án C++ trong IDE, sau đó thêm tệp cấu hình vào dự án:
Bản dựng Gradle – Thêm tệp cấu hình vào cùng thư mục với tệp
build.gradlecấp cao nhất.Các hệ thống xây dựng khác — Xem phần Hệ thống xây dựng tuỳ chỉnh bên dưới để tạo Tài nguyên chuỗi Android.
(Chỉ dành cho bản dựng Gradle) Để bật các dịch vụ của Firebase trong dự án C++, hãy thêm trình bổ trợ Gradle cho các dịch vụ của Google vào tệp
build.gradlecấp cao nhất.Thêm các quy tắc để đưa trình bổ trợ Gradle cho các dịch vụ của Google vào. Hãy kiểm tra để đảm bảo bạn cũng có kho lưu trữ Maven của Google.
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.5.0' // Google services Gradle plugin implementation 'com.google.android.gms:18.11.1' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }Áp dụng trình bổ trợ Gradle cho các dịch vụ của Google:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google services Gradle plugin android { // ... }
Bạn đã hoàn tất các nhiệm vụ thiết lập trong bảng điều khiển Firebase. Tiếp tục đến phần Thêm SDK C++ của Firebase bên dưới.
Bước 5: Thêm SDK C++ của Firebase
Các bước trong phần này là ví dụ về cách thêm các sản phẩm Firebase được hỗ trợ vào dự án Firebase C++ của bạn.
Tải Firebase C++ SDK xuống, sau đó giải nén SDK vào một vị trí thuận tiện.
SDK Firebase C++ không dành riêng cho nền tảng, nhưng có chứa các thư viện dành riêng cho nền tảng.
Trong tệp
gradle.propertiescủa dự án, hãy chỉ định vị trí của SDK đã giải nén:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Thêm nội dung sau vào tệp
settings.gradlecủa dự án: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"
Thêm nội dung sau vào tệp Gradle của mô-đun (cấp ứng dụng) (thường là
app/build.gradle).
Thêm phần phụ thuộc thư viện cho các sản phẩm Firebase mà bạn muốn sử dụng trong ứng dụng của mình.Đã bật 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 Analytics, Firebase Authentication, and Firebase Realtime Database apply from: "$gradle.firebase_cpp_sdk_dir/Android/firebase_dependencies.gradle" firebaseCpp.dependencies { analytics auth database }
Chưa bật 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 }
Thêm nội dung sau vào tệp
CMakeLists.txtcủa dự án.
Thêm thư viện cho các sản phẩm Firebase mà bạn muốn sử dụng trong ứng dụng.Đã bật 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 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}")
Chưa bật 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}")
Đồng bộ hoá ứng dụng để đảm bảo rằng tất cả phần phụ thuộc đều có các phiên bản cần thiết.
Nếu bạn đã thêm Analytics, hãy chạy ứng dụng để gửi thông tin xác minh đến Firebase rằng bạn đã tích hợp thành công Firebase. Nếu không, bạn có thể bỏ qua bước xác minh.
Nhật ký thiết bị sẽ cho thấy quy trình xác minh Firebase rằng quá trình khởi chạy đã hoàn tất. Nếu bạn chạy ứng dụng trên một trình mô phỏng có quyền truy cập mạng, bảng điều khiển Firebase sẽ thông báo cho bạn rằng kết nối ứng dụng đã hoàn tất.
Bạn đã hoàn tất! Ứng dụng C++ của bạn đã được đăng ký và định cấu hình để sử dụng các dịch vụ của Firebase.
Thư viện có sẵn
Tìm hiểu thêm về các thư viện Firebase C++ trong tài liệu tham khảo và trong bản phát hành SDK nguồn mở của chúng tôi trên GitHub.
Các thư viện có sẵn cho Android (sử dụng CMake)
Xin lưu ý rằng các thư viện C++ cho nền tảng của Apple được liệt kê trên phiên bản nền tảng của Apple (iOS+) của trang thiết lập này.
| Sản phẩm Firebase | Tài liệu tham khảo về thư viện ( firebaseCpp.dependenciescho tệp build.gradle) |
Tài liệu tham khảo về thư viện ( firebase_libscho tệp CMakeLists.txt) |
|---|---|---|
| Analytics | analytics |
firebase_analytics(bắt buộc) firebase_app
|
| App Check | appCheck |
firebase_app_check(bắt buộc) firebase_app
|
| Authentication | auth |
firebase_auth(bắt buộc) firebase_app
|
| Cloud Firestore | firestore |
firebase_firestore(bắt buộc) firebase_auth(bắt buộc) firebase_app
|
| Cloud Functions | functions |
firebase_functions(bắt buộc) firebase_app
|
| Cloud Messaging | messaging |
firebase_messaging(nên dùng) firebase_analytics(bắt buộc) firebase_app
|
| Cloud Storage | storage |
firebase_storage(bắt buộc) firebase_app
|
| Realtime Database | database |
firebase_database(bắt buộc) firebase_app
|
| Remote Config | remoteConfig |
firebase_remote_config(nên dùng) firebase_analytics(bắt buộc) firebase_app
|
| THƯ VIỆN KHÔNG ĐƯỢC HỖ TRỢ HOẶC KHÔNG CÒN SỬ DỤNG | ||
| Dynamic Links | dynamicLinks |
firebase_dynamic_links(nên dùng) firebase_analytics(bắt buộc) firebase_app
|
Thông tin bổ sung về cách thiết lập trên thiết bị di động
Nhận báo cáo sự cố NDK
Firebase Crashlytics hỗ trợ báo cáo sự cố cho các ứng dụng sử dụng thư viện gốc của Android. Để tìm hiểu thêm, hãy xem bài viết Nhận báo cáo sự cố Android NDK.
Hệ thống xây dựng tuỳ chỉnh
Firebase cung cấp tập lệnh generate_xml_from_google_services_json.py để chuyển đổi tài nguyên google-services.json thành .xml mà bạn có thể đưa vào dự án của mình. Tập lệnh này áp dụng cùng một phép biến đổi mà trình bổ trợ Gradle của Dịch vụ Google Play thực hiện khi tạo ứng dụng Android.
Nếu không xây dựng bằng Gradle (ví dụ: bạn sử dụng ndk-build, tệp makefile, Visual Studio, v.v.), bạn có thể sử dụng tập lệnh này để tự động tạo Tài nguyên chuỗi Android.
ProGuard
Nhiều hệ thống xây dựng Android sử dụng ProGuard cho các bản dựng ở Chế độ phát hành để thu nhỏ kích thước ứng dụng và bảo vệ mã nguồn Java.
Nếu sử dụng ProGuard, bạn cần thêm các tệp trong libs/android/*.pro tương ứng với thư viện Firebase C++ mà bạn đang dùng trong cấu hình ProGuard.
Ví dụ: với Gradle, nếu bạn đang sử dụng Google Analytics,
tệp build.gradle của bạn sẽ có dạng như sau:
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 } } }
Yêu cầu về Dịch vụ Google Play
Hầu hết các thư viện Firebase C++ đều yêu cầu
Dịch vụ Google Play
phải có trên thiết bị Android của ứng dụng khách. Nếu thư viện Firebase C++ trả về kInitResultFailedMissingDependency khi khởi chạy, thì tức là Dịch vụ Google Play không có sẵn trên thiết bị của ứng dụng khách (nghĩa là cần phải cập nhật, kích hoạt lại, sửa quyền, v.v.). Bạn không thể sử dụng thư viện Firebase cho đến khi tình huống trên thiết bị của ứng dụng được khắc phục.
Bạn có thể tìm hiểu lý do Dịch vụ Google Play không hoạt động trên thiết bị của ứng dụng khách (và tìm cách khắc phục) bằng cách sử dụng các hàm trong google_play_services/availability.h.
Bảng sau đây cho biết liệu thiết bị khách có cần cài đặt Dịch vụ Google Play hay không đối với từng sản phẩm Firebase được hỗ trợ.
| Thư viện Firebase C++ | Thiết bị của khách hàng có cần cài đặt Dịch vụ Google Play không? |
|---|---|
| Analytics | Không bắt buộc |
| Authentication | Bắt buộc |
| Cloud Firestore | Bắt buộc |
| Cloud Functions | Bắt buộc |
| Cloud Messaging | Bắt buộc |
| Cloud Storage | Bắt buộc |
| Dynamic Links | Bắt buộc |
| Realtime Database | Bắt buộc |
| Remote Config | Bắt buộc |
Thiết lập quy trình công việc trên máy tính (thử nghiệm)
Khi tạo trò chơi, bạn thường dễ dàng kiểm thử trò chơi trên nền tảng máy tính trước, sau đó triển khai và kiểm thử trên thiết bị di động trong quá trình phát triển. Để hỗ trợ quy trình công việc này, chúng tôi cung cấp một tập hợp con của Firebase C++ SDK có thể chạy trên Windows, macOS, Linux và từ trong trình chỉnh sửa C++.
Đối với quy trình làm việc trên máy tính, bạn cần hoàn tất những việc sau:
- Định cấu hình dự án C++ cho CMake.
- Tạo dự án Firebase
- Đăng ký ứng dụng (iOS hoặc Android) với Firebase
- Thêm tệp cấu hình Firebase cho nền tảng di động
Tạo phiên bản máy tính của tệp cấu hình Firebase:
Nếu bạn đã thêm tệp
google-services.jsoncủa Android — Khi bạn chạy ứng dụng, Firebase sẽ tìm tệp di động này, sau đó tự động tạo tệp cấu hình Firebase máy tính (google-services-desktop.json).Nếu bạn đã thêm tệp
GoogleService-Info.plistiOS — Trước khi chạy ứng dụng, bạn cần chuyển đổi tệp di động này thành tệp cấu hình Firebase máy tính. Để chuyển đổi tệp, hãy chạy lệnh sau trong cùng thư mục với tệpGoogleService-Info.plist:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Tệp cấu hình máy tính này chứa mã dự án C++ mà bạn đã nhập trong quy trình thiết lập bảng điều khiển Firebase. Hãy truy cập vào bài viết Tìm hiểu về các dự án Firebase để tìm hiểu thêm về tệp cấu hình.
Thêm SDK Firebase vào dự án C++.
Các bước dưới đây là ví dụ về cách thêm bất kỳ sản phẩm Firebase nào được hỗ trợ vào dự án C++ của bạn. Trong ví dụ này, chúng ta sẽ tìm hiểu cách thêm Firebase Authentication và Firebase Realtime Database.
Đặt biến môi trường
FIREBASE_CPP_SDK_DIRthành vị trí của SDK Firebase C++ đã giải nén.Thêm nội dung sau vào tệp
CMakeLists.txtcủa dự án, bao gồm cả thư viện cho các sản phẩm Firebase mà bạn muốn sử dụng. Ví dụ: để sử dụng Firebase Authentication và 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}")
Chạy ứng dụng C++.
Thư viện hiện có (máy tính)
Firebase C++ SDK có hỗ trợ quy trình làm việc trên máy tính cho một số tính năng, cho phép sử dụng một số phần của Firebase trong các bản dựng độc lập trên máy tính chạy Windows, macOS và Linux.
| Sản phẩm Firebase | Tài liệu tham khảo về thư viện (sử dụng CMake) |
|---|---|
| App Check |
firebase_app_check(bắt buộc) firebase_app
|
| Authentication |
firebase_auth(bắt buộc) firebase_app
|
| Cloud Firestore |
firebase_firestorefirebase_authfirebase_app
|
| Cloud Functions |
firebase_functions(bắt buộc) firebase_app
|
| Cloud Storage |
firebase_storage(bắt buộc) firebase_app
|
| Realtime Database |
firebase_database(bắt buộc) firebase_app
|
| Remote Config |
firebase_remote_config(bắt buộc) firebase_app
|
Firebase cung cấp các thư viện còn lại cho máy tính dưới dạng mã giả lập (không hoạt động) để thuận tiện khi xây dựng cho Windows, macOS và Linux. Do đó, bạn không cần biên dịch mã có điều kiện để nhắm đến máy tính.
Realtime Database máy tính
SDK Realtime Database cho máy tính sử dụng REST để truy cập vào cơ sở dữ liệu của bạn, vì vậy, bạn phải khai báo các chỉ mục mà bạn sử dụng với Query::OrderByChild() trên máy tính, nếu không thì trình nghe của bạn sẽ không hoạt động.
Thông tin bổ sung về cách thiết lập trên máy tính
Thư viện Windows
Đối với Windows, các phiên bản thư viện được cung cấp dựa trên những thông tin sau:
- Nền tảng bản dựng: Chế độ 32 bit (x86) so với 64 bit (x64)
- Môi trường thời gian chạy Windows: Đa luồng / MT so với DLL đa luồng /MD
- Mục tiêu: Bản phát hành so với Bản gỡ lỗi
Xin lưu ý rằng các thư viện sau đây đã được kiểm thử bằng Visual Studio 2015 và 2017.
Khi tạo ứng dụng dành cho máy tính C++ trên Windows, hãy liên kết các thư viện SDK Windows sau đây với dự án của bạn. Hãy tham khảo tài liệu về trình biên dịch để biết thêm thông tin.
| Thư viện Firebase C++ | Phần phụ thuộc thư viện 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 |
thư viện macOS
Đối với macOS (Darwin), các phiên bản thư viện được cung cấp cho nền tảng 64 bit (x86_64). Chúng tôi cũng cung cấp các khung để bạn tiện tham khảo.
Xin lưu ý rằng các thư viện macOS đã được kiểm thử bằng Xcode 26.2.
Khi tạo ứng dụng dành cho máy tính C++ trên macOS, hãy liên kết những mục sau với dự án của bạn:
- thư viện hệ thống
pthread CoreFoundationkhung hệ thống macOSFoundationkhung hệ thống macOSSecuritykhung hệ thống macOSGSSkhung hệ thống macOSKerberoskhung hệ thống macOSSystemConfigurationkhung hệ thống macOS
Hãy tham khảo tài liệu về trình biên dịch để biết thêm thông tin.
Thư viện Linux
Đối với Linux, các phiên bản thư viện được cung cấp cho nền tảng 32 bit (i386) và 64 bit (x86_64).
Xin lưu ý rằng các thư viện Linux đã được kiểm thử bằng GCC 4.8.0, GCC 7.2.0 và Clang 5.0 trên Ubuntu.
Khi tạo ứng dụng C++ cho máy tính trên Linux, hãy liên kết thư viện hệ thống pthread với dự án của bạn. Hãy tham khảo tài liệu về trình biên dịch để biết thêm thông tin. Nếu bạn đang xây dựng bằng GCC 5 trở lên, hãy xác định -D_GLIBCXX_USE_CXX11_ABI=0.
Các bước tiếp theo
Khám phá các ứng dụng Firebase mẫu.
Khám phá SDK nguồn mở trong GitHub.
Chuẩn bị ra mắt ứng dụng:
- Thiết lập cảnh báo về ngân sách cho dự án của bạn trong bảng điều khiển Google Cloud.
- Theo dõi trang tổng quan về Mức sử dụng và thanh toán trong bảng điều khiển Firebase để có được bức tranh tổng thể về mức sử dụng của dự án trên nhiều dịch vụ của Firebase.
- Xem danh sách kiểm tra khi phát hành Firebase.