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

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 Firebase C++ SDK.

Đ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.

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 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 của bạn thường được gọi là "thêm" ứng dụng của bạn đến dự án.

  1. Truy cập vào bảng điều khiển của Firebase.

  2. Ở 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 Thêm ứng dụng để hiển thị các tuỳ chọn nền tảng.

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

  4. (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ụngMã cửa hàng ứng dụng.

  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 để nhận Apple Firebase tệp cấu hình nền tảng.

  2. Mở dự án C++ trong một IDE, sau đó kéo tệp cấu hình của bạn 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 đã 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 Firebase được hỗ trợ vào Firebase của bạn Dự án C++.

  1. 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 từng nền tảng nhưng có chứa các thư viện dành riêng cho nền tảng.

  2. Thêm 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. Đối với Podfile, hãy thêm các nhóm Firebase mà bạn muốn sử dụng trong .

      Đã 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ừ tệp đã giải nén SDK.

    Cách dễ nhất để thêm các khung này thường là kéo chúng từ Cửa sổ Finder trực tiếp vào ngăn Project Navigator của Xcode (mục ngăn ngoài cùng bên trái theo mặc định; 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 C++ của Firebase firebase.framework, 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 tính năng Xác thực Firebase, hãy thêm firebase_auth.framework.

  4. 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.

  5. 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 bước này 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 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 Firebase của Google dành cho doanh nghiệp.

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 bản phát hành trên GitHub.

Các thư viện có sẵn dành cho các nền tảng của Apple

Lưu ý rằng thư viện C++ dành cho Android được liệt kê trong phiên bản Android của thư viện này trang thiết lập.

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ả liệt kê các phần phụ thuộc 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 Apple (iOS, tvOS, v.v.). 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
(đề xuất) firebase_analytics.framework


pod 'FirebaseMessaging', '10.28.1' (đề xuất) 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
(đề xuất) firebase_analytics.framework


pod 'FirebaseDynamicLinks', '10.28.1' (đề xuất) 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
(đề xuất) firebase_analytics.framework


pod 'FirebaseRemoteConfig', '10.28.1' (đề xuất) 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 . Ví dụ: có thể bạn phải đăng ký nhận thông báo uỷ quyền để triển khai application:didReceiveRemoteNotification:. Bởi vì mỗi ứng dụng iOS đều có đại biểu ứng dụng riêng, Firebase sử dụng phương thức swizzling, 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 trình xử lý đó ngoài bất kỳ trình xử lý nào mà bạn có thể đã triển khai.

Thư viện Đường liên kết động và Giải pháp gửi thông báo qua đám mây cần để đính kèm các trình xử lý vào đại biểu ứng dụng bằng cách sử dụng phương thức xoáy nhẹ. Nếu bạn đang sử dụng bất kỳ sản phẩm Firebase nào trong số này, thì vào thời điểm tải, Firebase sẽ xác định lớp AppDelegate của bạn và chèn nhanh các phương thức cần thiết vào lớp đó, tạo chuỗi lệnh gọi lại cho phương thức triển khai phương thức 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, 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 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++.

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

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

  3. 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 Tính năng xác thực Firebase và Cơ sở dữ liệu theo thời gian thực của Firebase.

    1. Đặ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.

    2. Đố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 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}")
      
  4. Chạy ứng dụng C++.

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

SDK C++ của Firebase 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)
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 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.

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ẽ 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
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 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 macOS
  • Foundation Khung hệ thống của macOS
  • Security Khung hệ thống của macOS
  • GSS Khung hệ thống của macOS
  • Kerberos Khung hệ thống của macOS
  • SystemConfiguration 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