Tăng sức mạnh cho các trò chơi C ++ của bạn với SDK Firebase C ++ của chúng tôi. Các SDK này cung cấp giao diện C ++ trên Firebase cho iOS và cho Android.
Truy cập Firebase hoàn toàn từ mã C ++ của bạn mà không cần phải viết bất kỳ mã gốc nền tảng nào. SDK Firebase cũng dịch nhiều thành ngữ dành riêng cho ngôn ngữ được Firebase sử dụng thành một giao diện quen thuộc hơn với các nhà phát triển C ++.
Tìm hiểu thêm thông tin về cách tăng sức mạnh cho trò chơi của bạn với Firebase tại trang trò chơi Firebase của chúng tôi.
Đã thêm Firebase vào dự án C ++ của bạn? Đả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 ưa thích của bạn, chẳng hạn như Android Studio, IntelliJ hoặc VS Code.
Nhận SDK Android .
Đảm bảo rằng dự án của bạn đáp ứng các yêu cầu sau:
API mục tiêu cấp 19 (KitKat) trở lên
Sử dụng Gradle và được định cấu hình bằng CMake
Thiết lập thiết bị vật lý hoặc sử dụng trình giả lập để chạy ứng dụng của bạn.
Trình giả lập phải sử dụng hình ảnh giả lập với Google Play.
Đối với một số thư viện C ++, dịch vụ Google Play là bắt buộc trên thiết bị khách; xem lại 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 ++ của mình, bạn cần tạo một dự án Firebase để kết nối với dự án C ++ của mình. Truy cập Tìm hiểu 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 của mình. Đăng ký ứng dụng của bạn thường được gọi là "thêm" ứng dụng của bạn vào dự án của bạn.
Đi tới bảng điều khiển Firebase .
Ở giữa trang tổng quan về dự án, 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 ứng dụng của bạn vào trường tên gói Android .
Tên gói xác định 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à ID ứng dụng .
Tìm tên gói ứng dụng của bạn 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à không thể thay đổi giá trị này cho ứng dụng Firebase Android này sau khi được đăng ký với dự án Firebase của bạn.
(Tùy chọn) Nhập thông tin ứng dụng khác: Biệt hiệu ứng dụng và Gỡ lỗi ký chứng chỉ SHA-1 .
Biệt hiệu ứng dụng : Mã nhận dạng nội bộ, tiện lợi chỉ hiển thị với bạn trong bảng điều khiển Firebase
Gỡ lỗi ký chứng chỉ SHA-1 : Hàm băm SHA-1 được yêu cầu bởi Xác thực Firebase (khi sử dụng Đăng nhập bằng Google hoặc đăng nhập bằng số điện thoại ) và Liên kết động Firebase .
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 xuống google-services.json để tải tệp cấu hình Firebase Android của bạn.
Tệp cấu hình Firebase chứa các số nhận dạng duy nhất nhưng không bí mật cho dự án của bạn. Để tìm hiểu thêm về tệp cấu hình này, hãy truy cập Tìm hiểu dự án Firebase .
Bạn có thể tải xuống lại tệp cấu hình Firebase của mình bất kỳ lúc nào.
Đảm bảo rằng tên tệp cấu hình không được nối với các ký tự bổ sung, chẳng hạn như
(2)
.
Mở dự án C ++ của bạn trong một IDE, sau đó thêm tệp cấu hình vào dự án của bạn:
Bản dựng Gradle - Thêm tệp cấu hình của bạn vào cùng thư mục với tệp
build.gradle
cấp cao nhất của bạn.Các hệ thống xây dựng khác - Xem Hệ thống xây dựng tùy chỉnh bên dưới để tạo Tài nguyên chuỗi Android .
(Chỉ các bản dựng Gradle) Để bật các dịch vụ Firebase trong dự án C ++ của bạn, hãy thêm plugin google-services vào tệp
build.gradle
cấp cao nhất của bạn.Thêm quy tắc để bao gồm plugin Gradle Dịch vụ của Google. Kiểm tra xem 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.3.13' // Google Services plugin implementation 'com.google.android.gms:18.1.0' } } allprojects { // ... repositories { // Check that you have the following line (if not, add it): google() // Google's Maven repository // ... } }
Áp dụng plugin Gradle 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 đã hoàn tất việc thiết lập các tác vụ trong bảng điều khiển Firebase. Tiếp tục thêm các SDK Firebase C ++ bên dưới.
Bước 5 : Thêm các SDK Firebase C ++
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 xuống Firebase C ++ SDK , sau đó giải nén SDK ở nơi nào đó thuận tiện.
Firebase C ++ SDK không dành riêng cho nền tảng, nhưng nó 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 đã 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"
Vào tệp Gradle mô-đun (cấp ứng dụng) của bạn (thường là
app/build.gradle
), hãy thêm nội dung sau.
Bao gồm các 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 phân tích
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 }
Phân tích không được bật
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 cá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 phân tích
# 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}")
Phân tích không được bật
# 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ộ hóa ứng dụng của bạn để đảm bảo rằng tất cả các 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 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ị 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 của mình trên trình giả lập 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 của bạn đã hoàn tất.
Bạn đã sẵn sàng! Ứ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ụ Firebase.
Thư viện có sẵn
Tìm hiểu thêm về các thư viện C ++ Firebase 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)
Lưu ý rằng các thư viện C ++ dành cho iOS được liệt kê trên phiên bản iOS của trang thiết lập này .
Sản phẩm Firebase | Thư viện tài liệu tham khảo ( firebaseCpp.dependencies cho tệp build.gradle ) | Thư viện tài liệu tham khảo ( firebase_libs cho tệp CMakeLists.txt ) |
---|---|---|
AdMob | admob | firebase_admob (bắt buộc) firebase_analytics (bắt buộc) firebase_app |
phân tích | analytics | firebase_analytics (bắt buộc) firebase_app |
Xác thực | 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 |
Chức năng đám mây | functions | firebase_functions (bắt buộc) firebase_app |
Nhắn tin qua đám mây | messaging | firebase_messaging (được khuyến nghị) firebase_analytics (bắt buộc) firebase_app |
Lưu trữ đám mây | storage | firebase_storage (bắt buộc) firebase_app |
Liên kết động | dynamicLinks | firebase_dynamic_links (được khuyến nghị) firebase_analytics (bắt buộc) firebase_app |
Cơ sở dữ liệu thời gian thực | database | firebase_database (bắt buộc) firebase_app |
Cấu hình từ xa | remoteConfig | firebase_remote_config (được khuyến nghị) firebase_analytics (bắt buộc) firebase_app |
Thông tin bổ sung để thiết lập điện thoại 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 Nhận báo cáo sự cố NDK của Android .
Hệ thống xây dựng tùy 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 chuyển đổi mà plugin Gradle dịch vụ của Google Play thực hiện khi xây dựng các ứng dụng Android.
Nếu bạn không xây dựng bằng Gradle (ví dụ: bạn sử dụng ndk-build, makefiles, 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 bạn sử dụng ProGuard, bạn sẽ 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 sử dụng trong cấu hình ProGuard của mình.
Ví dụ: với Gradle, nếu bạn đang sử dụng Google Analytics, tệp build.gradle
của bạn sẽ giố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 dịch vụ của Google Play
Hầu hết các thư viện Firebase C ++ đều yêu cầu các dịch vụ của Google Play phải có trên thiết bị Android của khách hàng. Nếu thư viện Firebase C ++ trả về kInitResultFailedMissingDependency
khi khởi tạo, điều đó có nghĩa là các dịch vụ của Google Play không khả dụng trên thiết bị khách (có nghĩa là nó cần được cập nhật, kích hoạt lại, sửa quyền, v.v.). Không thể sử dụng thư viện Firebase cho đến khi tình trạng trên thiết bị khách được khắc phục.
Bạn có thể tìm hiểu lý do tại sao các dịch vụ của Google Play không khả dụng trên thiết bị khách (và cố gắng khắc phục sự cố này) bằng cách sử dụng các chức năng trong google_play_services/availability.h
.
Bảng sau liệt kê liệu các dịch vụ của Google Play có được yêu cầu trên thiết bị khách đối với từng sản phẩm Firebase được hỗ trợ hay không.
Thư viện Firebase C ++ | Các dịch vụ của Google Play được yêu cầu trên thiết bị khách? |
---|---|
AdMob | Không bắt buộc (thường) |
phân tích | Không yêu cầu |
Xác thực | Yêu cầu |
Cloud Firestore | Yêu cầu |
Chức năng đám mây | Yêu cầu |
Nhắn tin qua đám mây | Yêu cầu |
Lưu trữ đám mây | Yêu cầu |
Liên kết động | Yêu cầu |
Cơ sở dữ liệu thời gian thực | Yêu cầu |
Cấu hình từ xa | Yêu cầu |
Dịch vụ AdMob và Google Play
Hầu hết các phiên bản của SDK quảng cáo trên điện thoại di động của Google dành cho Android có thể hoạt động bình thường mà không cần các dịch vụ của 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
tiêu chuẩn được liệt kê ở trên, thì các dịch vụ của Google Play là bắt buộc .
Quá trình khởi chạy AdMob sẽ chỉ trả về kInitResultFailedMissingDependency
khi cả hai điều sau đều đúng:
- Các dịch vụ của Google Play không khả dụng trên thiết bị khách.
- 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 ( beta )
Khi bạn đang tạo một trò chơi, việc thử nghiệm trò chơi của bạn trên nền tảng máy tính để bàn trước tiên sẽ dễ dàng hơn nhiều, 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. Để hỗ trợ quy trình làm 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ừ bên 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, bạn cần hoàn thành những điều sau:
- Định cấu hình dự án C ++ của bạn 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 máy tính để bàn của tệp cấu hình Firebase:
Nếu bạn đã thêm tệp
google-services.json
của Android - Khi bạn chạy ứng dụng của mình, Firebase sẽ định vị tệp di động này, sau đó tự động tạo tệp cấu hình Firebase trên máy tính để bàn (google-services-desktop.json
).Nếu bạn đã thêm tệp
GoogleService-Info.plist
iOS - Trước khi chạy ứng dụng của mình, bạn cần chuyển đổi tệp di động này thành tệp cấu hình Firebase trên máy tính để bàn . Để chuyển đổi tệp, hãy chạy lệnh sau từ cùng thư mục với tệpGoogleService-Info.plist
của bạn:generate_xml_from_google_services_json.py --plist -i GoogleService-Info.plist
Tệp cấu hình máy tính để bàn này chứa ID 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 Tìm hiểu 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ủa bạn.
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 tôi hướng dẫn thêm Xác thực Firebase và Cơ sở dữ liệu thời gian thực của Firebase.
Đặt biến môi trường
FIREBASE_CPP_SDK_DIR
của bạn thành vị trí của SDK Firebase C ++ đã 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 thư viện cho các sản phẩm Firebase mà bạn muốn sử dụng. Ví dụ: để sử dụng Xác thực Firebase và Cơ sở dữ liệu thời gian thực của 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}")
Chạy ứng dụng C ++ của bạn.
Thư viện có sẵn (máy tính để bàn)
Firebase C ++ SDK bao gồm hỗ trợ quy trình làm việc trên máy tính để bàn cho một tập hợp con các tính năng, cho phép sử dụng một số phần nhất định của Firebase trong các bản dựng máy tính để bàn độc lập trên Windows, macOS và Linux.
Sản phẩm Firebase | Thư viện tài liệu tham khảo (sử dụng CMake) |
---|---|
Xác thực | firebase_auth (bắt buộc) firebase_app |
Cloud Firestore | firebase_firestore firebase_auth firebase_app |
Chức năng đám mây | firebase_functions (bắt buộc) firebase_app |
Lưu trữ đám mây | firebase_storage (bắt buộc) firebase_app |
Cơ sở dữ liệu thời gian thực | firebase_database (bắt buộc) firebase_app |
Cấu hình từ xa | firebase_remote_config (bắt buộc) firebase_app |
Firebase cung cấp các thư viện máy tính để bàn còn lại dưới dạng triển khai sơ khai (không có chức năng) để thuận tiện khi xây dựng cho Windows, macOS và Linux. Do đó, bạn không cần phải biên dịch mã có điều kiện để nhắm mục tiêu đến máy tính để bàn.
Máy tính để bàn Cơ sở dữ liệu thời gian thực
SDK cơ sở dữ liệu thời gian thực cho máy tính để bàn sử dụng REST để truy cập 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 để bàn nếu không bộ nghe của bạn sẽ không thành công.
Thông tin bổ sung để thiết lập máy tính để bàn
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 điều sau:
- Xây dựng nền tảng: chế độ 32-bit (x86) so với chế độ 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 để bàn trên Windows, hãy liên kết các thư viện SDK Windows sau với dự án của bạn. Tham khảo tài liệu trình biên dịch của bạn để biết thêm thông tin.
Thư viện Firebase C ++ | Các phụ thuộc thư viện SDK Windows |
---|---|
Xác thực | advapi32, ws2_32, crypt32 |
Cloud Firestore | advapi32, ws2_32, crypt32, rpcrt4, ole32, shell32 |
Chức năng đám mây | advapi32, ws2_32, crypt32, rpcrt4, ole32 |
Lưu trữ đám mây | advapi32, ws2_32, crypt32 |
Cơ sở dữ liệu thời gian thực | advapi32, ws2_32, crypt32, iphlpapi, psapi, userenv |
Cấu hình từ xa | 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). Các khuôn khổ cũng được cung cấp để thuận tiện cho bạn.
Lưu ý rằng các thư viện macOS đã được kiểm tra bằng Xcode 13.3.1.
Khi xây dựng ứng dụng C ++ dành cho máy tính để bàn trên macOS, hãy liên kết phần sau với dự án của bạn:
- thư viện hệ thống
pthread
- Khung hệ thống
CoreFoundation
macOS - Khuôn khổ hệ thống macOS
Foundation
- Khung hệ thống macOS
Security
- Khung hệ thống
GSS
macOS - Khung hệ thống macOS
Kerberos
- Khung hệ thống MacOS
SystemConfiguration
Tham khảo tài liệu trình biên dịch của bạn để 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 các nền tảng 32-bit (i386) và 64-bit (x86_64).
Lưu ý rằng các thư viện Linux đã được kiểm tra 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 ++ trên máy tính để bàn trên Linux, hãy liên kết thư viện hệ thống pthread
với dự án của bạn. Tham khảo tài liệu trình biên dịch của bạn để biết thêm thông tin. Nếu bạn đang xây dựng với GCC 5 trở lên, hãy xác định -D_GLIBCXX_USE_CXX11_ABI=0
.
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ị khởi chạy ứng dụng của bạn:
- Thiết lập thông báo ngân sách cho dự án của bạn trong Google Cloud Console.
- Theo dõi Bảng điều khiển sử dụng và thanh toán trong bảng điều khiển Firebase để có được bức tranh tổng thể về việc sử dụng dự án của bạn trên nhiều dịch vụ Firebase.
- Xem lại danh sách kiểm tra khởi chạy Firebase .