Thêm Firebase vào dự án C++

Tăng cường trò chơi C++ bằng SDK C++ của Firebase. SDK này cung cấp giao diện C++ trên các SDK Firebase.

Truy cập hoàn toàn vào Firebase từ mã C++ mà không cần viết bất kỳ mã gốc nào trên nền tảng. SDK Firebase 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 các 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 tại trang Trò chơi Firebase.

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 các phần sau:

    • Xcode 13.3.1 trở lên
    • CocoaPods 1.12.0 trở lên
  • Đả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 trở lên:

    • iOS 13
    • tvOS 13
  • 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 một dự án Firebase để kết nối với dự án C++. Truy cập vào bài viết Tìm hiểu về dự án Firebase để tìm hiểu thêm về 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 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.

  1. Chuyển đến bảng điều khiển Firebase.

  2. Ở trung tâm trang tổng quan của dự án, hãy nhấp vào biểu tượng iOS+ để chạy 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 Thêm ứng dụng để hiển thị các tuỳ chọn nền tảng.

  3. Nhập mã nhận dạng gói của ứng dụng vào trường mã nhận dạng gói.

  4. (Không bắt buộc) Nhập thông tin khác về ứng dụng: Biệt hiệu ứng dụngMã App Store.

  5. Nhấp vào Đăng ký ứng dụng.

Bước 4: Thêm tệp cấu hình Firebase

  1. Nhấp vào Tải GoogleService-Info.plist xuống để lấy tệp cấu hình của nền tảng Apple cho Firebase.

  2. 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++.

  3. 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 đã 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 SDK Firebase C++ ở bên dưới.

Bước 5: Thêm 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 C++ của Firebase.

  1. Tải SDK Firebase C++ 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 chứa các thư viện dành riêng cho nền tảng.

  2. Thêm các nhóm Firebase từ SDK đã giải nén.

    1. Tạo Podfile nếu bạn chưa có:

      cd your-app-directory
      pod init

    2. Thêm các nhóm Firebase mà bạn muốn sử dụng trong ứng dụng vào Podfile.

      Đã 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'
    3. Cài đặt các nhóm, sau đó mở tệp .xcworkspace trong Xcode.

      pod install
      open your-app.xcworkspace

  3. 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 các khung đó từ cửa sổ Finder trực tiếp vào ngăn Project Navigator (Trình điều hướng dự án) của Xcode (theo mặc định, 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).

    1. Thêm khung Firebase C++ firebase.framework. Đây là khung bắt buộc để sử dụng bất kỳ sản phẩm Firebase nào.

    2. Thêm khung cho từng sản phẩm Firebase mà bạn muốn sử dụng. Ví dụ: để sử dụng Firebase Authentication, hãy thêm firebase_auth.framework.

  4. Quay lại bảng điều khiển Firebase, trong quy trình thiết lập, hãy nhấp vào Tiếp theo.

  5. Nếu bạn đã thêm Analytics, hãy chạy ứng dụng để gửi thông tin xác minh cho 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ị thông tin 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, thì 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 sản phẩm 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 nền tảng Apple

Xin lưu ý rằng các thư viện C++ cho Android được liệt kê trên 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 Podfile và dự án C++.

Mỗi sản phẩm Firebase chỉ có thể hỗ trợ một số nền tảng hệ điều hành của Apple (iOS, tvOS, v.v.). Hãy kiểm tra xem mỗi thư viện hỗ trợ nền tảng nào trong phần Tìm hiểu thêm về C++ và Firebase.

Sản phẩm Firebase Khung và nhóm
AdMob (bắt buộc) firebase.framework
firebase_admob.framework
(bắt buộc) firebase_analytics.framework

pod 'FirebaseAdMob', '11.4.2'
(bắt buộc) pod 'FirebaseAnalytics', '11.4.2'
Analytics (bắt buộc) firebase.framework
firebase_analytics.framework

pod 'FirebaseAnalytics', '11.4.2'
App Check (bắt buộc) firebase.framework
firebase_app_check.framework

pod 'FirebaseAppCheck', '11.4.2'
Authentication (bắt buộc) firebase.framework
firebase_auth.framework

pod 'FirebaseAuth', '11.4.2'
Cloud Firestore (bắt buộc) firebase.framework
firebase_firestore.framework
firebase_auth.framework

pod 'FirebaseFirestore', '11.4.2'
pod 'FirebaseAuth', '11.4.2'
Cloud Functions (bắt buộc) firebase.framework
firebase_functions.framework

pod 'FirebaseFunctions', '11.4.2'
Cloud Messaging (bắt buộc) firebase.framework
firebase_messaging.framework
(nên dùng) firebase_analytics.framework

pod 'FirebaseMessaging', '11.4.2'
(nên dùng) pod 'FirebaseAnalytics', '11.4.2'
Cloud Storage (bắt buộc) firebase.framework
firebase_storage.framework

pod 'FirebaseStorage', '11.4.2'
Dynamic Links (bắt buộc) firebase.framework
firebase_dynamic_links.framework
(nên dùng) firebase_analytics.framework

pod 'FirebaseDynamicLinks', '11.4.2'
(nên dùng) pod 'FirebaseAnalytics', '11.4.2'
Realtime Database (bắt buộc) firebase.framework
firebase_database.framework

pod 'FirebaseDatabase', '11.4.2'
Remote Config (bắt buộc) firebase.framework
firebase_remote_config.framework
(nên dùng) firebase_analytics.framework

pod 'FirebaseRemoteConfig', '11.4.2'
(nên dùng) pod 'FirebaseAnalytics', '11.4.2'

Thông tin bổ sung để thiết lập cho thiết bị di động

Thay đổi phương thức

Trên iOS, một số sự kiện ứ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 ứng dụng của bạn uỷ quyền triển khai application:didReceiveRemoteNotification:. Vì mỗi ứng dụng iOS đều có một trình uỷ quyền ứng dụng riêng, nên Firebase sử dụng tính năng đảo ngược phương thức (method swizzling) để cho phép thay thế một phương thức bằng một phương thức khác, nhằm đính kèm các trình xử lý riêng ngoài bất kỳ trình xử lý nào mà bạn có thể đã triển khai.

Thư viện Dynamic LinksCloud Messaging cần đính kèm trình xử lý vào trình uỷ quyền ứng dụng bằng cách sử dụng tính năng hoán đổi phương thức. Nếu bạn đang sử dụng bất kỳ sản phẩm Firebase nào trong số này, tại thời điểm tải, Firebase sẽ xác định lớp AppDelegate và chuyển đổi các phương thức bắt buộc vào lớp đó, tạo chuỗi lệnh gọi lại cho phương thức triển khai hiện có.

Thiết lập quy trình làm việc trên máy tính (phiên 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 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 nhóm con của SDK Firebase C++ có thể chạy trên Windows, macOS, Linux và trong trình chỉnh sửa C++.

  1. Đố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:

    1. Định cấu hình dự án C++ cho CMake.
    2. Tạo dự án Firebase
    3. Đăng ký ứng dụng (iOS hoặc Android) của bạn với Firebase
    4. Thêm tệp cấu hình Firebase cho nền tảng di động
  2. 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 củ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.plist dành cho 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 trong cùng thư mục với tệp GoogleService-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. Truy cập vào 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.

  3. 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++. Trong ví dụ này, chúng ta sẽ hướng dẫn cách thêm Firebase AuthenticationFirebase Realtime Database.

    1. Đặt biến môi trường FIREBASE_CPP_SDK_DIR thành vị trí của SDK Firebase C++ đã giải nén.

    2. Thêm nội dung sau vào tệp CMakeLists.txt củ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 AuthenticationFirebase 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}")
  4. Chạy ứng dụng C++.

Thư viện có sẵn (máy tính)

SDK Firebase C++ bao gồm 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 nhất định 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 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 để bàn 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 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 dành cho 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 hoặc trình nghe của bạn sẽ không hoạt động.

Thông tin bổ sung để 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 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 đa luồng /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 đây đã đượ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 SDK Windows sau 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 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 nền tảng 64 bit (x86_64). Chúng tôi cũng cung cấp các khung để thuận tiện cho bạn.

Xin lưu ý rằng các thư viện macOS đã được kiểm thử bằng Xcode 13.3.1.

Khi tạo ứng dụng C++ cho máy tính trên macOS, hãy liên kết những nội dung sau với dự án của bạn:

  • Thư viện hệ thống pthread
  • CoreFoundation Khung hệ thống macOS
  • Foundation Khung hệ thống macOS
  • Security Khung hệ thống macOS
  • GSS Khung hệ thống macOS
  • Kerberos Khung hệ thống macOS
  • SystemConfiguration 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++ 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