Tăng cường sức mạnh cho các trò chơi C++ của bạn bằng SDK C++ của Firebase. SDK này cung cấp một giao diện C++ trên các SDK của Firebase.
Truy cập hoàn toàn vào Firebase từ mã C++ mà không cần viết mã gốc của nền tảng. Firebase SDK cũng dịch nhiều thành ngữ dành riêng cho ngôn ngữ mà Firebase sử dụng thành 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 sức mạnh cho trò chơi bằng Firebase trên trang về trò chơi trên Firebase.
Bạn đã thêm Firebase vào dự án C++ của mình 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 API cấp 21 (Lollipop) trở lên
Sử dụng Gradle và được định cấu hình bằng CMake
Thiết lập một 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 một hình ảnh trình mô phỏng có Google Play.
Đối với một số thư viện C++, bạn phải có Dịch vụ Google Play trên thiết bị khách; 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 một 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++ của mình. Hãy truy cập vào trang Tìm hiểu về các dự án Firebase để tìm hiểu thêm về các dự án Firebase.
Xem hướng dẫn tạo dự án Firebase
Hãy làm theo các bước sau nếu bạn mới sử dụng Firebase hoặc Google Cloud.
Bạn cũng có thể làm theo các bước này nếu muốn tạo một dự án Firebase hoàn toàn mới (và dự án Google Cloud cơ bản của dự án đó).
- Đăng nhập vào bảng điều khiển Firebase.
- Nhấp vào nút này để tạo một dự án Firebase mới.
-
Trong trường văn bản, hãy nhập tên dự án.
Nếu là thành viên của một tổ chức Google Cloud, bạn có thể chọn thư mục để tạo dự án (không bắt buộc).
- Nếu được nhắc, hãy xem xét và chấp nhận các điều khoản của Firebase, sau đó nhấp vào Tiếp tục.
- (Không bắt buộc) Bật tính năng hỗ trợ của AI trong bảng điều khiển Firebase (còn gọi là "Gemini trong Firebase"). Tính năng này có thể giúp bạn bắt đầu và đơn giản hoá quy trình phát triển.
-
(Không bắt buộc) Thiết lập Google Analytics cho dự án của bạn. Việc này giúp mang lại trải nghiệm tối ưu khi sử dụng các sản phẩm Firebase sau đây: Firebase A/B Testing, Cloud Messaging, Crashlytics, In-App Messaging và Remote Config (bao gồm cả Cá nhân hoá).
Chọn một tài khoản Google Analytics hiện có hoặc tạo một tài khoản mới. Nếu bạn tạo một tài khoản mới, hãy chọn Analyticsvị trí báo cáo, sau đó chấp nhận chế độ chia sẻ dữ liệu và Google Analyticsđiều khoảnGoogle Analytics cho dự án của bạn.
- Nhấp vào Tạo dự án.
Firebase sẽ tạo dự án, cung cấp một số tài nguyên ban đầu và bật các API quan trọng. Khi quá trình này hoàn tất, bạn sẽ được chuyển đến trang tổng quan về dự án Firebase của mình trong bảng điều khiển Firebase.
Hãy làm theo các bước sau nếu bạn muốn bắt đầu sử dụng Firebase với một dự án Google Cloud hiện có. Tìm hiểu thêm về cách "thêm Firebase" vào một dự án Google Cloud hiện có.
- Đăng nhập vào bảng điều khiển Firebase bằng tài khoản cấp cho bạn quyền truy cập vào dự án Google Cloud hiện có.
- Nhấp vào nút này để tạo một dự án Firebase mới.
- Ở cuối trang, hãy nhấp vào Thêm Firebase vào dự án trên Google Cloud.
- Trong trường văn bản, hãy bắt đầu nhập tên dự án của dự án hiện có, sau đó chọn dự án trong danh sách xuất hiện.
- Nhấp vào Mở dự án.
- Nếu được nhắc, hãy xem xét và chấp nhận các điều khoản của Firebase, sau đó nhấp vào Tiếp tục.
- (Không bắt buộc) Bật tính năng hỗ trợ của AI trong bảng điều khiển Firebase (còn gọi là "Gemini trong Firebase"). Tính năng này có thể giúp bạn bắt đầu và đơn giản hoá quy trình phát triển.
-
(Không bắt buộc) Thiết lập Google Analytics cho dự án của bạn. Việc này giúp mang lại trải nghiệm tối ưu khi sử dụng các sản phẩm Firebase sau đây: Firebase A/B Testing, Cloud Messaging, Crashlytics, In-App Messaging và Remote Config (bao gồm cả Cá nhân hoá).
Chọn một tài khoản Google Analytics hiện có hoặc tạo một tài khoản mới. Nếu bạn tạo một tài khoản mới, hãy chọn Analyticsvị trí báo cáo, sau đó chấp nhận chế độ chia sẻ dữ liệu và Google Analyticsđiều khoảnGoogle Analytics cho dự án của bạn.
- Nhấp vào Thêm Firebase.
Firebase thêm Firebase vào dự án hiện có của bạn. Khi quá trình này hoàn tất, bạn sẽ được chuyển đến trang tổng quan về dự án Firebase của mình trong bảng điều khiể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.
Tên gói là gì và bạn có thể tìm thấy tên gói ở đâu?
Tên gói giúp nhận dạng duy nhất ứng dụng của bạn trên thiết bị và trong Cửa hàng Google Play.
Tên gói thường được gọi là mã ứng dụng.
Tìm tên gói của ứng dụng trong tệp Gradle mô-đun (cấp ứng dụng), thường là
app/build.gradle
(tên gói ví dụ:com.yourcompany.yourproject
).Xin lưu ý rằng giá trị tên gói có phân biệt chữ hoa chữ thường và bạn không thể thay đổi giá trị này cho ứng dụng Android trên Firebase sau khi ứng dụng được đăng ký với dự án Firebase của bạn.
(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à SHA-1 của chứng chỉ ký gỡ lỗi.
Biệt hiệu ứng dụng và SHA-1 của chứng chỉ gỡ lỗi chữ ký được dùng như thế nào trong Firebase?
Biệt hiệu của ứng dụng: 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
SHA-1 của chứng chỉ ký gỡ lỗi: Firebase Authentication yêu cầu hàm băm SHA-1 (khi dùng Đăng nhập bằng Google hoặc đăng nhập bằng số điện thoại) và Firebase Dynamic Links.
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 Tải tệp google-services.json xuống để lấy tệp cấu hình Firebase Android.
Bạn cần biết những gì về tệp cấu hình này?
Tệp cấu hình Firebase chứa các giá trị nhận dạng duy nhất nhưng không bí mật của dự án và ứng dụng. Để tìm hiểu thêm về tệp cấu hình này, hãy truy cập vào phần Tìm hiểu về các dự án Firebase.
Bạn có thể tải tệp cấu hình Firebase xuống lại bất cứ lúc nào.
Đảm bảo rằng tên tệp cấu hình không có ký tự thừa, chẳng hạn như
(2)
.
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 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ỉ bản dựng Gradle) Để bật các dịch vụ Firebase trong dự án C++, hãy thêm trình bổ trợ google-services vào tệp
build.gradle
cấ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. 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.4.3' // Google Services plugin implementation 'com.google.android.gms:18.8.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ợ Google Services Gradle:
apply plugin: 'com.android.application' // Add the following line: apply plugin: 'com.google.gms.google-services' // Google Services plugin android { // ... }
Bạn đã hoàn tất các việc cần làm trong quá trình thiết lập trên bảng điều khiển Firebase. Tiếp tục Thêm SDK Firebase C++ bên dưới.
Bước 5: Thêm SDK C++ của Firebase
Các bước trong phần này là một ví dụ về cách thêm các sản phẩm được hỗ trợ của Firebase vào dự án Firebase C++ của bạn.
Tải Firebase C++ SDK xuống, sau đó giải nén SDK ở một 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 SDK chưa giải nén:systemProp.firebase_cpp_sdk.dir=
full-path-to-SDK Thêm nội dung sau vào tệp
settings.gradle
củ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 các phần phụ thuộc vào thư viện cho những sản phẩm Firebase mà bạn muốn dùng trong ứng dụng.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 }
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.txt
của dự án.
Thêm các thư viện cho những sản phẩm Firebase mà bạn muốn dùng trong ứng dụng của mình.# 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}")
Đồ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ị của bạn sẽ hiển thị quy trình xác minh Firebase rằng quá trình khởi tạo đã 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 vào mạng, thì bảng điều khiển Firebase sẽ thông báo cho bạn rằng quá trình 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.
(lựa chọn thay thế không bắt buộc) Sử dụng ndk-build để thêm SDK
- Đảm bảo rằng bạn có Android NDK phiên bản 10d trở lên.
Tải Firebase C++ SDK xuống, sau đó giải nén SDK ở một 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.
-
Mở tệp
local.properties
, sau đó:- Đặt biến
firebase_cpp_sdk.dir
thành vị trí của SDK Firebase C++ chưa giải nén. - Đặt biến
ndk.dir
thành vị trí của Android NDK.
- Đặt biến
-
Để sử dụng tính năng hỗ trợ ndkBuild tích hợp của Gradle, hãy tạo một thư mục
jni
trong thư mục cấp cao nhất, sau đó tạo các tệpmake
sau đây.-
Tạo tệp
jni/Application.mk
có nội dung sau:APP_PLATFORM:=android-14 NDK_TOOLCHAIN_VERSION=clang APP_ABI:=armeabi-v7a arm64-v8a x86 x86_64 APP_STL:=c++_static APP_MODULES:=android_main APP_CPPFLAGS+=-std=c++11
-
Tạo tệp
jni/Android.mk
có nội dung sau.Đưa các thư viện của sản phẩm Firebase mà bạn muốn sử dụng vào. Ví dụ: để sử dụng Analytics:
LOCAL_PATH:=$(call my-dir)/.. ifeq ($(FIREBASE_CPP_SDK_DIR),) $(error FIREBASE_CPP_SDK_DIR must specify the Firebase package location.) endif # With Firebase libraries for the selected build configuration (ABI + STL) STL:=$(firstword $(subst _, ,$(APP_STL))) FIREBASE_LIBRARY_PATH:=\ $(FIREBASE_CPP_SDK_DIR)/libs/android/$(TARGET_ARCH_ABI)/$(STL) # The Firebase C++ library `libfirebase_app.a` is required for all Firebase products. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_app LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_app.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) # Include the Firebase library for Google Analytics. # Note: Duplicate this block for each Firebase product that you want # to use in your app, and replace variable values as appropriate. include $(CLEAR_VARS) LOCAL_MODULE:=firebase_analytics LOCAL_SRC_FILES:=$(FIREBASE_LIBRARY_PATH)/libfirebase_analytics.a LOCAL_EXPORT_C_INCLUDES:=$(FIREBASE_CPP_SDK_DIR)/include include $(PREBUILT_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE:=android_main # Reference your project's C++ source files LOCAL_SRC_FILES:=\ $(LOCAL_PATH)/src/common_main.cc \ $(LOCAL_PATH)/src/android/android_main.cc LOCAL_STATIC_LIBRARIES:=\ firebase_analytics \ firebase_app # this library reference must always be listed last LOCAL_WHOLE_STATIC_LIBRARIES:=\ android_native_app_glue LOCAL_C_INCLUDES:=\ $(NDK_ROOT)/sources/android/native_app_glue \ $(LOCAL_PATH)/src LOCAL_LDLIBS:=-llog -landroid -latomic LOCAL_ARM_MODE:=arm LOCAL_LDFLAGS:=-Wl,-z,defs -Wl,--no-undefined include $(BUILD_SHARED_LIBRARY) $(call import-add-path,$(NDK_ROOT)/sources/android) $(call import-module,android/native_app_glue)
-
-
Mở tệp
build.gradle
cấp cao nhất, sau đó hoàn tất các bước sau:-
Thêm các phần phụ thuộc cho những sản phẩm của Firebase mà bạn muốn sử dụng. Ví dụ: để sử dụng Analytics:
dependencies { implementation 'com.google.firebase:firebase-analytics:21.0.0' }
-
Thêm các dòng sau để dự án của bạn sử dụng tính năng hỗ trợ ndk-build tích hợp của Gradle nhằm đưa các thư viện Firebase được chỉ định trong tệp
jni/Android.mk
vào.android { // ... defaultConfig { // ... externalNativeBuild.ndkBuild { arguments "FIREBASE_CPP_SDK_DIR=${project.ext.firebase_cpp_sdk_dir}", "NDK_APPLICTION_MK=jni/Application.mk", sprintf("APP_PLATFORM=android-%d", android.defaultConfig.minSdkVersion.mApiLevel) } } }
-
Các thư viện có sẵn cho Android (sử dụng ndk-build)
Mỗi sản phẩm của Firebase đều có các phần phụ thuộc khác nhau. Hãy nhớ thêm tất cả các phần phụ thuộc được liệt kê cho những sản phẩm của Firebase mà bạn muốn sử dụng.
Thêm các thư viện Firebase C++ (chẳng hạn như libfirebase_app.a
) bằng cách đưa các thư viện đó vào tệp jni/Android.mk
cấp cao nhất. Đối với các phần phụ thuộc khác (chẳng hạn như com.google.firebase:firebase-auth
), hãy thêm chúng vào tệp build.gradle
cấp cao nhất.
Sản phẩm Firebase | Thư viện và phần phụ thuộc |
---|---|
AdMob |
libfirebase_admob.a (bắt buộc) libfirebase_analytics.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-ads:19.8.0' (bắt buộc) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Analytics |
libfirebase_analytics.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
App Check |
libfirebase_app_check.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-appcheck:17.0.0'
|
Authentication |
libfirebase_auth.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-auth:21.0.5'
|
Cloud Firestore |
libfirebase_firestore.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-firestore:24.1.2'
|
Cloud Functions |
libfirebase_functions.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-functions:20.1.0'
|
Cloud Messaging |
libfirebase_messaging.a (nên dùng) libfirebase_analytics.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-messaging:23.0.5' (nên dùng) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Cloud Storage |
libfirebase_storage.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-storage:20.0.1'
|
Dynamic Links |
ibfirebase_dynamic_links.a (nên dùng) libfirebase_analytics.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-dynamic-links:21.0.1' (nên dùng) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
Realtime Database |
libfirebase_database.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-database:20.0.5'
|
Remote Config |
libfirebase_remote_config.a (nên dùng) libfirebase_analytics.a (bắt buộc) libfirebase_app.a implementation 'com.google.firebase:firebase-config:21.1.0' (nên dùng) implementation 'com.google.firebase:firebase-analytics:21.0.0'
|
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++ dành cho nền tảng Apple được liệt kê trên phiên bản Nền tảng Apple (iOS+) của trang thiết lập này.
Sản phẩm Firebase | Tham chiếu thư viện ( firebaseCpp.dependencies cho tệp build.gradle ) |
Tham chiếu 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 (nên dùng) 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 (nên dùng) 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 (nên dùng) firebase_analytics (bắt buộc) firebase_app
|
Thông tin bổ sung về 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 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 google-services.json
thành tài nguyên .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 quy trình chuyển đổi mà trình bổ trợ Gradle của Google Play Services thực hiện khi tạo các ứng dụng Android.
Nếu không dùng Gradle để tạo bản dựng (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 hoá quá trình 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 để giảm 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 các thư viện Firebase C++ mà bạn đang dùng vào cấu hình ProGuard.
Ví dụ: với Gradle, nếu bạn đang sử dụng Google Analytics, thì 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 máy khách. Nếu một thư viện Firebase C++ trả về kInitResultFailedMissingDependency
khi khởi chạy, thì có nghĩa là Dịch vụ Google Play không có trên thiết bị của khách hàng (tức là cần được 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 khắc phục được tình trạng trên thiết bị của khách hàng.
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 khách hàng (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 liệt kê xem thiết bị ứng dụng có bắt buộc phải có Dịch vụ Google Play hay không đối với từng sản phẩm được Firebase hỗ trợ.
Thư viện C++ của Firebase | Thiết bị của khách hàng có cần Dịch vụ Google Play không? |
---|---|
AdMob | Không bắt buộc (thường là) |
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 |
AdMob và Dịch vụ Google Play
Hầu hết các phiên bản của SDK Google Mobile Ads dành cho Android đều có thể hoạt động bình thường mà không cần Dịch vụ Google Play trên thiết bị của khách hàng. Tuy nhiên, nếu đ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
tiêu chuẩn được liệt kê ở trên, thì bạn phải có Dịch vụ Google Play.
Quá trình khởi tạo AdMob sẽ chỉ trả về kInitResultFailedMissingDependency
khi cả hai điều kiện sau đều đúng:
- Dịch vụ Google Play không hoạt động trên thiết bị của khách hàng.
- Bạn đang sử 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 tạo trò chơi, bạn thường dễ dàng kiểm thử trò chơi trên các 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 sau này trong quá trình phát triển. Để hỗ trợ quy trình này, chúng tôi cung cấp một nhóm nhỏ 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 tất 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 (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.json
Android – Khi bạn chạy ứng dụng, Firebase sẽ xác định vị trí của tệp thiết bị 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 đã thêm tệp
GoogleService-Info.plist
iOS – 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 từ cùng một 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 dành cho 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 trang 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 các 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 được hỗ trợ nào vào dự án C++ của bạn. Trong ví dụ này, chúng ta sẽ xem xét 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++ chưa giải nén.Vào tệp
CMakeLists.txt
của dự án, hãy thêm nội dung sau, bao gồm cả các thư viện cho những sản phẩm của 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++.
Các thư viện có sẵn (máy tính)
Firebase SDK 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 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_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 còn lại trên máy tính dưới dạng các triển khai stub (không hoạt động) để thuận tiện khi tạo cho Windows, macOS và Linux. Do đó, bạn không cần phải biên dịch có điều kiện mã để nhắm đến máy tính.
Realtime Database máy tính
SDK Realtime Database dành 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, các 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 yếu tố 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 Đa luồng DLL /MD
- Mục tiêu: Phát hành so với gỡ lỗi
Xin lưu ý rằng các thư viện sau đã được kiểm thử bằng Visual Studio 2015 và 2017.
Khi tạo ứng dụng C++ cho máy tính trên Windows, hãy liên kết các thư viện Windows SDK 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 C++ của Firebase | 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 hình để bạn tiện sử dụng.
Xin lưu ý rằng các thư viện macOS đã được kiểm thử bằng Xcode 16.2.
Khi tạo ứng dụng C++ cho máy tính trên macOS, hãy liên kết những thành phần sau với dự án của bạn:
pthread
thư viện hệ thốngCoreFoundation
Khung hệ thống macOSFoundation
Khung hệ thống macOSSecurity
Khung hệ thống macOSGSS
Khung hệ thống macOSKerberos
Khung hệ thống macOSSystemConfiguration
Khung 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++ 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 bạn đang tạo 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 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 Mức sử dụng và thanh toán trong bảng điều khiển Firebase để nắm được thông tin tổng quan 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 trước khi phát hành của Firebase.