Tăng cường sức mạnh cho trò chơi C++ của bạn bằng SDK C++ của Firebase. SDK này cung cấp giao diện C++ 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ã gốc nền tảng nào. Firebase SDK cũng chuyển nhiều thành ngữ dành riêng cho từng ngôn ngữ mà 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 thiết lập trò chơi của bạn bằng Firebase tại trang trò chơi trong Firebase của chúng tôi.
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++ trong Firebase.
Điều kiện tiên quyết
Cài đặt như sau:
- Xcode 13.3.1 trở lên
- CocoaPods 1.12.0 trở lên
Hãy đảm bảo rằng dự án của bạn nhắm đến các phiên bản nền tảng sau đây trở lên:
- iOS 11
- tvOS 12
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.
Đă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 dự án Firebase để kết nối với dự án C++. Hãy xem 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 của Apple, 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 thường được gọi là "thêm" ứng dụng vào dự án.
Truy cập vào 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 iOS+ để bắt đầu quy trình thiết lập.
Nếu bạn đã thêm một ứng dụng vào dự án Firebase, hãy nhấp vào Add app (Thêm ứng dụng) để hiển thị các lựa chọn về nền tảng.
Nhập mã gói của ứng dụng vào trường mã gói.
(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à Mã cửa hàng ứng dụng.
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 GoogleService-Info.plist xuống để lấy tệp cấu hình nền tảng Apple Firebase.
Mở dự án C++ trong một IDE, sau đó kéo tệp cấu hình vào thư mục gốc của dự án C++.
Nếu được nhắc, hãy chọn để thêm tệp cấu hình vào tất cả mục tiêu.
Bạn đã thiết lập xong các tác vụ trong bảng điều khiển của 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 các sản phẩm được hỗ trợ của Firebase vào dự án C++ của Firebase.
Tải SDK C++ của Firebase xuống, sau đó giải nén SDK ở nơi thuận tiện.
SDK C++ của Firebase 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.
Thêm nhóm Firebase từ SDK đã giải nén.
Tạo một tệp Podfile nếu bạn chưa có:
cd your-app-directory
pod init
Đối với Podfile, hãy thêm các nhóm Firebase mà bạn muốn sử dụng trong ứng dụng của mình.
Đã bật Analytics
# Add the Firebase pod for Google Analytics pod 'FirebaseAnalytics'
# Add the pods for any other Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'Chưa bật Analytics
# Add the pods for the Firebase products you want to use in your app # For example, to use Firebase Authentication and Firebase Realtime Database pod 'FirebaseAuth' pod 'FirebaseDatabase'
Cài đặt các nhóm, sau đó mở tệp
.xcworkspace
trong Xcode.pod install
open your-app.xcworkspace
Thêm khung Firebase từ SDK đã giải nén.
Cách dễ nhất để thêm các khung này thường là kéo trực tiếp từ cửa sổ
Finder
vào ngăn Project Navigator của Xcode (mặc định là ngăn ngoài cùng bên trái; hoặc nhấp vào biểu tượng tệp ở trên cùng bên trái của Xcode).Thêm khung C++ của Firebase
firebase.framework
. Đây là khung bắt buộc để sử dụng bất kỳ sản phẩm Firebase nào.Thêm khung cho từng sản phẩm Firebase mà bạn muốn sử dụng. Ví dụ: để sử dụng tính năng Xác thực Firebase, hãy thêm
firebase_auth.framework
.
Quay lại bảng điều khiển của Firebase, trong quy trình thiết lập, hãy nhấp vào Tiếp theo.
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 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 này.
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 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 của 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 các sản phẩm của Firebase.
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 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 dành cho các nền tảng của Apple
Xin lưu ý rằng các thư viện C++ dành cho Android được liệt kê trong phiên bản Android của trang thiết lập này.
Mỗi sản phẩm Firebase 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 sản phẩm Firebase mong muốn vào dự án Podfile và C++ của bạn.
Mỗi sản phẩm Firebase chỉ có thể hỗ trợ một số nền tảng Apple OS (iOS, tvOS, v.v.). Hãy kiểm tra xem mỗi thư viện hỗ trợ nền tảng nào trong Tìm hiểu thêm về C++ và Firebase.
Sản phẩm của Firebase | Khung và nhóm |
---|---|
AdMob |
(bắt buộc) firebase.framework firebase_admob.framework (bắt buộc) firebase_analytics.framework pod 'FirebaseAdMob', '10.28.1' (bắt buộc) pod 'FirebaseAnalytics', '10.28.1'
|
Số liệu phân tích |
(bắt buộc) firebase.framework firebase_analytics.framework pod 'FirebaseAnalytics', '10.28.1'
|
Kiểm tra ứng dụng |
(bắt buộc) firebase.framework firebase_app_check.framework pod 'FirebaseAppCheck', '10.28.1'
|
Xác thực |
(bắt buộc) firebase.framework firebase_auth.framework pod 'FirebaseAuth', '10.28.1'
|
Cloud Firestore |
(bắt buộc) firebase.framework firebase_firestore.framework firebase_auth.framework pod 'FirebaseFirestore', '10.28.1' pod 'FirebaseAuth', '10.28.1'
|
Chức năng đám mây |
(bắt buộc) firebase.framework firebase_functions.framework pod 'FirebaseFunctions', '10.28.1'
|
Giải pháp gửi thông báo qua đám mây |
(bắt buộc) firebase.framework firebase_messaging.framework (nên chọn) firebase_analytics.framework pod 'FirebaseMessaging', '10.28.1' (nên chọn) pod 'FirebaseAnalytics', '10.28.1'
|
Bộ nhớ trên đám mây |
(bắt buộc) firebase.framework firebase_storage.framework pod 'FirebaseStorage', '10.28.1'
|
Đường liên kết động |
(bắt buộc) firebase.framework firebase_dynamic_links.framework (nên chọn) firebase_analytics.framework pod 'FirebaseDynamicLinks', '10.28.1' (nên chọn) pod 'FirebaseAnalytics', '10.28.1'
|
Cơ sở dữ liệu theo thời gian thực |
(bắt buộc) firebase.framework firebase_database.framework pod 'FirebaseDatabase', '10.28.1'
|
Cấu hình từ xa |
(bắt buộc) firebase.framework firebase_remote_config.framework (nên chọn) firebase_analytics.framework pod 'FirebaseRemoteConfig', '10.28.1' (nên chọn) pod 'FirebaseAnalytics', '10.28.1'
|
Thông tin bổ sung khi thiết lập thiết bị di động
Phương thức xoáy
Trên iOS, một số sự kiện của ứng dụng (chẳng hạn như mở URL và nhận thông báo) yêu cầu uỷ quyền ứng dụng của bạn để triển khai các phương thức cụ thể. Ví dụ: việc nhận thông báo có thể yêu cầu tính năng uỷ quyền của ứng dụng triển khai application:didReceiveRemoteNotification:
. Vì mỗi ứng dụng iOS đều có uỷ quyền ứng dụng riêng, nên Firebase sử dụng phương thức swizzling (phương thức xoáy), cho phép thay thế một phương thức bằng một phương thức khác, để đính kèm trình xử lý của riêng phương thức đó, ngoài những trình xử lý mà bạn có thể đã triển khai.
Các thư viện Đường liên kết động và Gửi thông báo qua đám mây cần đính kèm các trình xử lý vào tính năng uỷ quyền ứng dụng bằng phương thức xoáy. Nếu bạn đang sử dụng bất kỳ sản phẩm Firebase nào trong số này, vào thời điểm tải, Firebase sẽ
xác định lớp AppDelegate
của bạn và thu gọn các phương thức cần thiết vào lớp đó,
tạo chuỗi lệnh gọi trở lại phương thức triển khai hiện tại của bạn.
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, thường sẽ dễ dàng hơn nhiều nếu bạn thử nghiệm trò chơi trên các nền tảng dành cho máy tính trước tiên, sau đó triển khai và thử nghiệm trên thiết bị di động sau 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 SDK C++ của Firebase 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, Firebase sẽ xác định vị trí của 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
dành cho iOS – Trước khi chạy ứng dụng, bạn cần chuyển đổi tệp thiết bị di động này thành tệp cấu hình Firebase dành cho máy tính. Để chuyển đổi tệp này, 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 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 của Firebase. Hãy xem bài viết Tìm hiểu về 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 được hỗ trợ nào vào dự án C++ của bạn. Trong ví dụ này, chúng tôi sẽ hướng dẫn bạn cách thêm tính năng Xác thực Firebase và Cơ sở dữ liệu theo thời gian thực của Firebase.
Đặt biến môi trường
FIREBASE_CPP_SDK_DIR
thành vị trí của SDK C++ của Firebase đã 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 cả thư viện của các sản phẩm Firebase mà bạn muốn sử dụng. Ví dụ: cách sử dụng tính năng Xác thực Firebase và Cơ sở dữ liệu theo 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++.
Thư viện hiện có (máy tính)
SDK C++ của Firebase có tính năng 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 dành cho máy tính 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) |
---|---|
Kiểm tra ứng dụng |
firebase_app_check (bắt buộc) firebase_app
|
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
|
Bộ nhớ trên đám mây |
firebase_storage (bắt buộc) firebase_app
|
Cơ sở dữ liệu theo 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 còn lại dưới dạng các phương thức triển khai giả lập (không hoạt động) để 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.
Cơ sở dữ liệu theo thời gian thực trên máy tính
SDK cơ sở dữ liệu theo thời gian thực 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 chỉ mục mà bạn sử dụng với Query::OrderByChild()
trên máy tính, nếu không trình nghe sẽ bị lỗi.
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 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 C++ của Firebase | Các phần phụ thuộc của thư viện SDK Windows |
---|---|
Kiểm tra ứng dụng | advapi32, ws2_32, crypt32 |
Xác thực | 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 |
Cơ sở dữ liệu theo 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). 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 các 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, 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 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 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 cảnh báo ngân sách cho dự án của bạn trong bảng điều khiển Google Cloud.
- Hãy theo dõi trang tổng quan về Mức sử dụng và thanh toán trong bảng điều khiển của Firebase để nắm được thông tin tổng thể về mức sử dụng dự án của bạn trên nhiều dịch vụ của Firebase.
- Xem danh sách kiểm tra khi phát hành Firebase.