Tăng cường hiệu quả cho trò chơi C++ của bạn bằng SDK C++ của Firebase. SDK này cung cấp phiên bản C++ giao diện trên Firebase SDK.
Truy cập hoàn toàn vào Firebase từ mã C++ mà không phải viết bất kỳ mã nào mã gốc của nền tảng. Firebase SDK cũng dịch nhiều ngôn ngữ cụ thể các thành ngữ được Firebase sử dụng trong 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 kích hoạt trò chơi của bạn bằng Firebase tại Trang trò chơi của Firebase.
Bạn đã thêm Firebase vào dự án C++? Hãy đảm bảo rằng bạn đang sử dụng phiên bản mới nhất của SDK C++ Firebase.
Đ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 dùng, chẳng hạn như Android Studio, IntelliJ, hoặc Mã VS.
Lấy SDK Android.
Hãy đảm bảo dự án của bạn đáp ứng các yêu cầu sau:
Nhắm mục tiêu API cấp 19 (KitKat) hoặc cao hơn
Sử dụng Gradle và được định cấu hình với CMake
Thiết lập một thiết bị thực hoặc 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 với Google Play.
Đối với một số thư viện C++, ứng dụng cần có Dịch vụ Google Play thiết bị; xem lại danh sách trên trang này.
Đăng nhập vào Firebase bằng tài khoản Google tài khoả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 Firebase dự án để kết nối với dự án C++ của bạn. Truy cập/ghé qua Tìm hiểu về các dự án Firebase để tìm hiểu thêm 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 của mình với Dự án Firebase. Việc đăng ký ứng dụng của bạn thường được gọi là "thêm" ứng dụng của bạn đến dự án.
Chuyển đến bảng điều khiển của Firebase.
Ở giữa trang tổng quan về dự án, hãy nhấp vào biểu tượng Android (
) hoặc Thêm ứng dụng để khởi chạy quy trình thiết lập.Nhập tên gói của ứng dụng vào trường Android package name (Tên gói Android).
(Không bắt buộc) Nhập thông tin khác về ứng dụng: Biệt hiệu của ứng dụng và Chứng chỉ ký gỡ lỗi SHA-1.
Nhấp vào Đăng ký ứng dụng.
Bước 4: Thêm tệp cấu hình Firebase
Nhấp vào Download google-services.json xuống để tải Firebase Android config của bạn.
Mở dự án C++ trong một 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.gradle
cấp cao nhất.Các hệ thống xây dựng khác — Xem Các hệ thống xây dựng tuỳ chỉnh dưới đây để tạo Tài nguyên chuỗi Android.
(chỉ dành cho các bản dựng Gradle) Để bật các dịch vụ Firebase trong dự án C++, thêm thuộc tính google-services trình bổ trợ vào tệp
build.gradle
cấp cao nhất của bạn.Thêm các quy tắc để đưa trình bổ trợ Gradle cho các dịch vụ của Google vào. Kiểm tra để chắc chắn rằng 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.4.2' // Google Services plugin implementation 'com.google.android.gms:18.5.0' } } 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 Dịch vụ của Google:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Bạn đã thiết lập xong các nhiệm vụ trong bảng điều khiển Firebase. Tiếp tục 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 Firebase được hỗ trợ sản phẩm vào Dự án Firebase C++.
Tải SDK C++ Firebase xuống, sau đó giải nén SDK ở nơi 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.properties
của dự án, hãy chỉ định vị trí của phần tử SDK đã giải nén:systemProp.firebase_cpp_sdk.dir=full-path-to-SDK
Vào tệp
settings.gradle
của dự án, hãy thêm nội dung sau: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"
Trong tệp Gradle của mô-đun (cấp ứng dụng) (thường là
app/build.gradle
), hãy thêm phần tử nội dung theo dõi.
Bao gồm phần phụ thuộc của 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 }
Vào tệp
CMakeLists.txt
của dự án, hãy thêm nội dung sau.
Bao gồm 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
# 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 của bạn để đảm bảo rằng tất cả các phần phụ thuộc đều có phiên bản cần thiết.
Nếu bạn đã thêm Analytics, hãy chạy ứng dụng của bạn để gửi thông tin xác minh đến Firebase bạn đã tích hợp thành công Firebase. Nếu không, bạn có thể bỏ qua xác minh.
Nhật ký thiết bị của bạn sẽ hiển thị thông tin xác minh Firebase mà việc 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 ứng dụng của bạn đã kết nối xong.
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 Firebase luôn miễn phí.
Thư viện có sẵn
Tìm hiểu thêm về thư viện Firebase C++ trong tài liệu tham khảo và trong SDK nguồn mở của chúng tôi trên GitHub.
Các thư viện hiện có cho Android (sử dụng CMake)
Lưu ý rằng thư viện C++ dành cho các nền tảng của Apple được liệt kê trên các nền tảng của Apple phiên bản (iOS+) của trang thiết lập này.
Sản phẩm của Firebase | Tài liệu tham khảo về thư viện ( firebaseCpp.dependencies cho tệp build.gradle ) |
Tài liệu tham khảo về thư viện ( firebase_libs cho tệp CMakeLists.txt ) |
---|---|---|
AdMob | admob |
firebase_admob
(bắt buộc) firebase_analytics (bắt buộc) firebase_app
|
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
(đề xuất) firebase_analytics (bắt buộc) firebase_app
|
Cloud Storage | storage |
firebase_storage
(bắt buộc) firebase_app
|
Dynamic Links | dynamicLinks |
firebase_dynamic_links
(đề xuất) firebase_analytics (bắt buộc) firebase_app
|
Realtime Database | database |
firebase_database
(bắt buộc) firebase_app
|
Remote Config | remoteConfig |
firebase_remote_config
(đề xuất) firebase_analytics (bắt buộc) firebase_app
|
Thông tin bổ sung khi thiết lập thiết bị di động
Nhận báo cáo sự cố NDK
Firebase Crashlytics hỗ trợ tính năng báo cáo sự cố cho các ứng dụng sử dụng Android thư viện gốc. Để tìm hiểu thêm, hãy xem Nhận báo cáo sự cố về 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 những tài nguyên google-services.json
thành .xml
mà bạn có thể đưa vào
dự án của bạn. Tập lệnh này áp dụng cùng một phép biến đổi mà Google Play
các dịch vụ mà trình bổ trợ Gradle thực hiện khi xây dựng ứng dụng Android.
Nếu bạn không tạo bằng Gradle (ví dụ: bạn dùng ndk-build, makefile, Visual Studio, v.v.), bạn có thể dùng tập lệnh này để tự động tạo Chuỗi Android Tài nguyên.
ProGuard
Nhiều hệ thống xây dựng Android dùng ProGuard cho các bản dựng trong 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 sẽ cần thêm tệp trong libs/android/*.pro
tương ứng với các thư viện C++ của Firebase mà bạn đang sử dụng trong 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 đối với Dịch vụ Google Play
Hầu hết các thư viện C++ của Firebase đều yêu cầu
Dịch vụ Google Play
trên thiết bị Android của khách hàng. Nếu thư viện C++ của Firebase trả về
kInitResultFailedMissingDependency
khi khởi chạy, điều đó có nghĩa là Dịch vụ Google Play không có sẵn trên
thiết bị khách hàng (có nghĩa là thiết bị cần được cập nhật, kích hoạt lại, quyền
cố định, v.v.). Bạn không thể sử dụng thư viện Firebase cho đến tình huống trên
thiết bị khách đã được sửa.
Bạn có thể tìm hiểu lý do Dịch vụ Google Play không dùng được trên thiết bị khách
(và cố gắng 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 ứng dụng có bắt buộc phải sử dụng Dịch vụ Google Play hay không cho từng sản phẩm Firebase được hỗ trợ.
Thư viện C++ của Firebase | Có cần dịch vụ Google Play trên thiết bị khách không? |
---|---|
AdMob | Không bắt buộc (thường) |
Analytics | Không yêu cầu |
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 |
AdMob và Dịch vụ Google Play
Hầu hết phiên bản SDK Google Mobile Ads dành cho Android đều có thể hoạt động bình thường
nếu không có Dịch vụ Google Play trên thiết bị khách. Tuy nhiên, nếu bạn đang sử dụng
phần phụ thuộc com.google.android.gms:play-services-ads-lite
, thay vì
phần phụ thuộc com.google.firebase:firebase-ads
chuẩn nêu trên, Dịch vụ Google Play
bắt buộc.
Khởi chạy AdMob sẽ chỉ trả về kInitResultFailedMissingDependency
khi cả hai điều sau đều đúng:
- Dịch vụ Google Play không hoạt động trên thiết bị khách.
- Bạn đang dùng
com.google.android.gms:play-services-ads-lite
.
Thiết lập quy trình làm việc trên máy tính để bàn (thử nghiệm)
Khi bạn tạo một trò chơi, việc thử nghiệm trò chơi trên máy tính thường sẽ dễ dàng hơn nhiều nền tảng trước, sau đó triển khai và thử nghiệm trên thiết bị di động trong quá trình phát triển sau này. Người nhận hỗ trợ quy trình công việc này, chúng tôi cung cấp một tập con các SDK Firebase C++ có thể chạy trên Windows, macOS, Linux và 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 thành các bước sau:
- Định cấu hình dự án C++ cho CMake.
- Tạo dự án Firebase
- Đăng ký ứng dụng của bạn (iOS hoặc Android) với Firebase
- Thêm tệp cấu hình Firebase nền tảng di động
Tạo phiên bản dành cho máy tính của tệp cấu hình Firebase:
Nếu bạn đã thêm tệp Android
google-services.json
– Khi bạn chạy ứng dụng của bạn, Firebase sẽ định vị tệp thiết bị di động này, sau đó tự động tạo một tệp cấu hình Firebase trên máy tính (google-services-desktop.json
).Nếu bạn đã thêm tệp
GoogleService-Info.plist
của iOS – Trước khi chạy ứng dụng của bạn, bạn cần chuyển đổi tệp trên thiết bị di động này thành Firebase dành cho máy tính config của bạn. Để chuyển đổi tệp, hãy chạy lệnh sau từ cùng một làm 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 vào quy trình thiết lập bảng điều khiển Firebase. Truy cập/ghé qua 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 đóng vai trò như một ví dụ về cách thêm bất kỳ sản phẩm Firebase được hỗ trợ để dự án C++ của bạn. Trong ví dụ này, chúng ta sẽ hướng dẫn cách thêm Firebase Authentication và Firebase Realtime Database.
Đặt biến môi trường
FIREBASE_CPP_SDK_DIR
thành vị trí của SDK Firebase C++ đã giải nén.Đối với tệp
CMakeLists.txt
của dự án, hãy thêm nội dung sau: bao gồm 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)
SDK Firebase C++ 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 máy tính để bàn độc lập chạy trên Windows, macOS và Linux.
Sản phẩm của 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_firestore firebase_auth firebase_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 máy tính còn lại dưới dạng mã giả lập (không hoạt động) Một số cách triển khai để thuận tiện khi xây dựng ứng dụng cho Windows, macOS và Linux. Do đó, bạn không cần biên dịch có điều kiện mã để nhắm mục tiêu máy tính.
Realtime Database cho 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 chỉ mục
mà bạn dùng với Query::OrderByChild()
trên máy tính, nếu không trình nghe sẽ không hoạt động.
Thông tin bổ sung khi thiết lập 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 nội dung sau:
- Nền tảng xây 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 /MD đa luồng
- Mục tiêu: Phát hành so với Gỡ lỗi
Lưu ý rằng các thư viện sau đã được thử nghiệm bằng Visual Studio 2015 và 2017.
Khi xây dựng ứng dụng C++ dành cho máy tính trên Windows, hãy liên kết SDK Windows sau vào dự án của mình. Hãy tham khảo tài liệu về trình biên dịch để biết thêm của bạn.
Thư viện C++ của Firebase | Các phần phụ thuộc của thư viện SDK Windows |
---|---|
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 phiên bản 64 bit (x86_64) chủ. Chúng tôi cũng cung cấp các khung chương trình để thuận tiện cho bạn.
Lưu ý rằng thư viện macOS đã được kiểm thử bằng Xcode 13.3.1.
Khi xây dựng ứng dụng C++ dành cho máy tính trên macOS, hãy liên kết đoạn mã sau với dự án của bạn:
- Thư viện hệ thống
pthread
CoreFoundation
Khung hệ thống của macOSFoundation
Khung hệ thống của macOSSecurity
Khung hệ thống của macOSGSS
Khung hệ thống của macOSKerberos
Khung hệ thống của macOSSystemConfiguration
Khung hệ thống của 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, phiên bản thư viện được cung cấp cho phiên bản 32 bit (i386) và 64 bit (x86_64) nền tảng.
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 xây dựng ứng dụng C++ dành 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
mà bạn đang tạo bằng GCC 5 trở lên, hãy khai báo -D_GLIBCXX_USE_CXX11_ABI=0
.
Các bước tiếp theo
Khám phá ứng dụng Firebase mẫu.
Khám phá SDK nguồn mở trong GitHub.
Chuẩn bị phát hành ứng dụng:
- Thiết lập ngân sách cảnh báo cho dự án của bạn trong bảng điều khiển Google Cloud.
- Theo dõi Việc sử dụng và thanh toán trang tổng quan trong bảng điều khiển của Firebase để có được thông tin tổng thể về trên nhiều dịch vụ Firebase.
- Xem danh sách kiểm tra khi phát hành Firebase.