Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Thêm Firebase vào dự án Unity của bạn

Tăng sức mạnh cho các trò chơi Unity của bạn với SDK Firebase Unity của chúng tôi.

Để cho thấy việc cắm Firebase vào dự án Unity của bạn dễ dàng như thế nào, chúng tôi đã tạo một trò chơi mẫu, MechaHamster, mà bạn có thể tải xuống từ GitHub , App StoreGoogle Play Store .

MechaHamster (GitHub)

MechaHamster (App Store)

MechaHamster (Cửa hàng Play)


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

Điều kiện tiên quyết

  • Cài đặt Unity 5.3 trở lên.

  • (Chỉ iOS) Cài đặt phần sau:

    • Xcode 9.4.1 trở lên
    • CocoaPods 1.9.0 trở lên
  • Đảm bảo rằng dự án Unity của bạn đáp ứng các yêu cầu sau:

    • Đối với iOS - nhắm mục tiêu iOS 10 trở lên
    • Đối với Android - mục tiêu API cấp 16 (Jelly Bean) trở lên
  • 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.

    • Đối với iOS - Thiết lập thiết bị iOS thực hoặc sử dụng trình mô phỏng iOS.

    • Đối với Android - Trình giả lập phải sử dụng hình ảnh giả lập với Google Play.

Nếu bạn chưa có dự án Unity và chỉ muốn dùng thử sản phẩm Firebase, bạn có thể tải xuống một trong các mẫu bắt đầu nhanh của chúng tôi.

Bước 1 : Tạo dự án Firebase

Trước khi có thể thêm Firebase vào dự án Unity của mình, bạn cần tạo một dự án Firebase để kết nối với dự án Unity 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 2 : Đăng ký ứng dụng của bạn với Firebase

Bạn có thể đăng ký một hoặc nhiều ứng dụng hoặc trò chơi để kết nối với dự án Firebase của mình.

  1. Đi tới bảng điều khiển Firebase .

  2. Ở giữa trang tổng quan của dự án, nhấp vào biểu tượng Unity ( ) để khởi 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 của mình, hãy nhấp vào Thêm ứng dụng để hiển thị các tùy chọn nền tảng.

  3. Chọn mục tiêu xây dựng của dự án Unity mà bạn muốn đăng ký, hoặc thậm chí bạn có thể chọn đăng ký cả hai mục tiêu ngay bây giờ cùng một lúc.

  4. Nhập (các) ID dành riêng cho nền tảng của dự án Unity của bạn.

    • Đối với iOS - Nhập ID iOS của dự án Unity của bạn vào trường ID gói iOS .

    • Đối với Android - Nhập ID Android của dự án Unity của bạn vào trường tên gói Android .
      Tên gói điều khoản và ID ứng dụng thường được sử dụng thay thế cho nhau.

  5. (Tùy chọn) Nhập (các) biệt hiệu dành riêng cho nền tảng của dự án Unity của bạn.
    Những biệt hiệu này là số nhận dạng nội bộ, tiện lợi và chỉ hiển thị với bạn trong bảng điều khiển Firebase.

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

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

  1. Nhận (các) tệp cấu hình Firebase dành riêng cho nền tảng của bạn trong quy trình thiết lập bảng điều khiển Firebase.

    • Đối với iOS - Nhấp vào Tải xuống GoogleService-Info.plist .

    • Đối với Android - Nhấp vào Tải xuống google-services.json .

  2. Mở cửa sổ Dự án của dự án Unity của bạn, sau đó di chuyển (các) tệp cấu hình của bạn vào thư mục Assets .

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

Bước 4 : Thêm SDK Unity Firebase

  1. Trong bảng điều khiển Firebase, nhấp vào Tải xuống Firebase Unity SDK , sau đó giải nén SDK ở nơi nào đó thuận tiện.

    • Bạn có thể tải xuống lại Firebase Unity SDK bất kỳ lúc nào.

    • SDK Unity Firebase không dành riêng cho nền tảng.

  2. Trong dự án Unity đang mở của bạn, điều hướng đến Nội dung > Gói nhập > Gói tùy chỉnh .

  3. Từ SDK đã giải nén, hãy chọn các sản phẩm Firebase được hỗ trợ mà bạn muốn sử dụng trong ứng dụng của mình.

    Đã bật phân tích

    • Thêm gói Firebase cho Google Analytics: FirebaseAnalytics.unitypackage
    • Thêm các gói cho bất kỳ sản phẩm Firebase nào khác mà bạn muốn sử dụng trong ứng dụng của mình. Ví dụ: để sử dụng Xác thực Firebase và Cơ sở dữ liệu thời gian thực của Firebase:
      FirebaseAuth.unitypackageFirebaseDatabase.unitypackage

    Analytics không được bật

    Thêm các gói cho các sản phẩm Firebase bạn muốn sử dụng trong ứng dụng của mình. Ví dụ: để sử dụng Xác thực Firebase và Cơ sở dữ liệu thời gian thực của Firebase:
    FirebaseAuth.unitypackageFirebaseDatabase.unitypackage

  4. Trong cửa sổ Nhập Gói Hợp nhất , bấm Nhập .

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

Bước 5 : Xác nhận yêu cầu phiên bản dịch vụ của Google Play

SDK Firebase Unity dành cho Android yêu cầu các dịch vụ của Google Play , dịch vụ này phải được cập nhật trước khi SDK có thể được sử dụng.

Thêm mã sau vào đầu ứng dụng của bạn. Bạn có thể kiểm tra và tùy chọn cập nhật các dịch vụ của Google Play lên phiên bản mà SDK Firebase Unity yêu cầu trước khi gọi bất kỳ phương thức nào khác trong SDK.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp,
    // where app is a Firebase.FirebaseApp property of your application class.
       app = Firebase.FirebaseApp.DefaultInstance;

    // Set a flag here to indicate whether Firebase is ready to use by your app.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

Bạn đã sẵn sàng! Dự án Unity của bạn đã được đăng ký và định cấu hình để sử dụng Firebase.

Các vấn đề đã biết

Khả năng tương thích .NET khi sử dụng Unity 2017.x trở lên

Firebase hỗ trợ .NET 4.x dưới dạng tùy chọn xây dựng thử nghiệm trong Unity 2017 trở lên. Các plugin Firebase sử dụng các thành phần của Parse SDK để cung cấp một số lớp .NET 4.x trong các phiên bản .NET trước đó.

Do đó, Firebase Unity SDK phiên bản 5.4.0 trở lên cung cấp các plugin tương thích với .NET 3.x hoặc .NET 4.x trong dotnet3dotnet4 của Firebase Unity SDK.

Nếu bạn nhập một plugin Firebase không tương thích với phiên bản .NET được bật trong dự án của mình, bạn sẽ thấy lỗi biên dịch từ một số loại trong khung .NET được Parse SDK triển khai.

Để giải quyết lỗi biên dịch, nếu bạn đang sử dụng .NET 3.x:

  1. Xóa hoặc tắt các DLL sau cho tất cả các nền tảng:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll
  2. Bật các tệp DLL sau cho tất cả các nền tảng:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll

Để giải quyết lỗi biên dịch, nếu bạn đang sử dụng .NET 4.x:

  1. Xóa hoặc tắt các DLL sau cho tất cả các nền tảng:
    • Parse/Plugins/Unity.Compat.dll
    • Parse/Plugins/Unity.Tasks.dll
  2. Bật các tệp DLL sau cho tất cả các nền tảng:
    • Parse/Plugins/dotNet45/Unity.Compat.dll
    • Parse/Plugins/dotNet45/Unity.Tasks.dll

Nếu bạn nhập một plugin Firebase khác:

  • Trong dự án Unity của bạn, điều hướng đến Nội dung > Trình phân giải dịch vụ Play > Trình xử lý phiên bản > Cập nhật để bật các tệp DLL chính xác cho dự án của bạn.

Biên dịch Unity 2017.1 IL2CPP trong các dự án .NET 4.x

Firebase hỗ trợ .NET 4.x dưới dạng tùy chọn xây dựng thử nghiệm trong Unity 2017 trở lên. Các plugin Firebase sử dụng các thành phần của Parse SDK để cung cấp một số lớp .NET 4.x trong các phiên bản .NET trước đó.

Do đó, Firebase Unity SDK phiên bản 5.4.0 trở lên cung cấp các DLL chuyển tiếp kiểu chuyển tiếp các kiểu Phân tích cú pháp (ví dụ: triển khai Phân tích cú pháp của System.Threading.Tasks.Task ) tới khung công tác .NET. Thật không may, IL2CPP (một trình chuyển đổi chuyển đổi C # sang C ++) được vận chuyển trong Unity 2017.1.x không xử lý chính xác các DLL chuyển tiếp loại dẫn đến lỗi bản dựng giống như sau:

Fatal error in Unity CIL Linker Mono.Cecil.ResolutionException: Failed to
resolve System.Threading.Tasks.TaskCompletionSource`1<T>

Hiện không có giải pháp thay thế nào cho lỗi xây dựng .NET 4.x IL2CPP trong Unity 2017.1, vì vậy bạn phải nâng cấp lên Unity 2017.2 trở lên để sử dụng .NET 4.x trong các dự án được biên dịch với IL2CPP.

Mạng Unity 2017.2

Cơ sở dữ liệu thời gian thực của Firebase tạo kết nối mạng TLS bằng cách sử dụng ngăn xếp mạng .NET. Chức năng TLS bị hỏng trong Unity 2017.2 khi sử dụng .NET 4.6 khiến plugin Cơ sở dữ liệu thời gian thực bị lỗi trong trình chỉnh sửa và trên máy tính để bàn.

Không có giải pháp thay thế cho vấn đề này, vì vậy bạn phải sử dụng phiên bản Unity khác, ví dụ: phiên bản 2017.1 hoặc 2017.3.

Thiếu tệp cấu hình Firebase Android trong Unity 2020.

Để hỗ trợ các phiên bản Unity không có khả năng tùy chỉnh bản dựng Gradle, công cụ biên tập Firebase tạo Assets/Plugins/Android/Firebase/res/values/google-services.xml dưới dạng tài nguyên Android được đóng gói thành một Bản dựng Android để SDK Firebase có thể sử dụng nó để khởi tạo phiên bản FirebaseApp mặc định.

Trong Unity 2020, tất cả tài nguyên Android phải nằm trong thư mục có hậu tố .androidlib . Nếu dự án của bạn đang sử dụng SDK Firebase tạo thư mục Assets/Plugins/Android/Firebase , hãy đổi tên nó thành Assets/Plugins/Android/Firebase.androidlib . Đảm bảo rằng nó chứa AndroidManifest.xml , project.propertiesres/values/google-services.xml .

Sự cố với một dex trong khi xây dựng ứng dụng Android

Trong khi xây dựng ứng dụng Android, bạn có thể gặp lỗi xây dựng liên quan đến việc có một tệp dex duy nhất. Thông báo lỗi trông tương tự như sau, nếu dự án của bạn được định cấu hình để sử dụng hệ thống xây dựng Gradle.

Cannot fit requested classes in a single dex file.

Các tệp Dalvik Executable ( .dex ) được sử dụng để chứa một tập hợp các định nghĩa lớp và dữ liệu bổ trợ liên quan của chúng cho các ứng dụng Android ( .apk ). Một tệp dex duy nhất được giới hạn tham chiếu đến 65.536 phương thức. Quá trình xây dựng sẽ không thành công nếu tổng số phương thức từ tất cả các thư viện Android trong dự án của bạn vượt quá giới hạn này.

Unity đã giới thiệu Minification vào năm 2017.2, sử dụng Proguard (hoặc các công cụ khác trong một số phiên bản của Unity) để loại bỏ mã không sử dụng, có thể làm giảm tổng số phương thức được tham chiếu trong một tệp dex. Bạn có thể tìm thấy tùy chọn này trong Cài đặt trình phát> Android> Cài đặt xuất bản> Thu nhỏ . Các tùy chọn có thể khác nhau trong các phiên bản Unity khác nhau, vì vậy hãy tham khảo tài liệu Unity chính thức.

Nếu số lượng phương thức được tham chiếu vẫn vượt quá giới hạn, một tùy chọn khác là bật multidex . Có nhiều cách để đạt được điều này trong Unity:

  • Nếu Custom Gradle Template trong Player Settings được bật, hãy sửa đổi mainTemplate.gradle .
  • Nếu bạn sử dụng Android Studio để xây dựng dự án đã xuất, hãy sửa đổi tệp build.gradle cấp mô-đun.

Bạn có thể tìm thêm thông tin chi tiết trong hướng dẫn sử dụng multidex .

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 kiểm tra trò chơi của bạn trong trình chỉnh sửa Unity và 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ác SDK Firebase Unity có thể chạy trên Windows, macOS, Linux và từ trong trình chỉnh sửa Unity.

  1. Thiết lập dự án Unity nền tảng máy tính để bàn bằng cách làm theo các hướng dẫn tương tự như đối với nền tảng di động (bắt đầu với bước Đăng ký ứng dụng của bạn với Firebase ở trên).

  2. Chạy dự án Unity của bạn trong Unity IDE hoặc chọn xây dựng dự án Unity cho máy tính để bàn .

  3. (Tùy chọn) Chạy dự án Unity của bạn trong Chế độ chỉnh sửa.

    Firebase Unity SDK cũng có thể được chạy trong chế độ chỉnh sửa của Unity, cho phép sử dụng nó trong các plugin trình chỉnh sửa.

    1. Khi bạn tạo một FirebaseApp được sử dụng bởi trình chỉnh sửa, không sử dụng phiên bản mặc định.

    2. Thay vào đó, hãy cung cấp một tên duy nhất cho lệnh gọi FirebaseApp.Create() .

      Điều này rất quan trọng để tránh xung đột trong các tùy chọn giữa cá thể được Unity IDE sử dụng và cá thể được sử dụng bởi dự án Unity của bạn.

Các sản phẩm Firebase được hỗ trợ

Tìm hiểu thêm về các thư viện Unity Firebase trong tài liệu tham khảo .

SDK Firebase Unity hỗ trợ các sản phẩm Firebase sau trên iOSAndroid :

Sản phẩm Firebase Gói Unity
AdMob Được phân phối riêng trong Plugin AdMob Unity
phân tích FirebaseAnalytics.unitypackage
Xác thực FirebaseAuth.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Chức năng đám mây FirebaseFunctions.unitypackage
Nhắn tin qua đám mây FirebaseMessaging.unitypackage
(được khuyến nghị) FirebaseAnalytics.unitypackage
Lưu trữ đám mây FirebaseStorage.unitypackage
Crashlytics FirebaseCrashlytics.unitypackage
(được khuyến nghị) FirebaseAnalytics.unitypackage
Liên kết động FirebaseDynamicLinks.unitypackage
(được khuyến nghị) FirebaseAnalytics.unitypackage
Cơ sở dữ liệu thời gian thực FirebaseDatabase.unitypackage
Cấu hình từ xa FirebaseRemoteConfig.unitypackage
(được khuyến nghị) FirebaseAnalytics.unitypackage

Các sản phẩm Firebase được hỗ trợ (máy tính để bàn)

Firebase Unity 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 sản phẩm, cho phép các phần nhất định của Firebase được sử dụng trong trình chỉnh sửa Unity và 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 (máy tính để bàn) Gói Unity
Xác thực FirebaseAuth.unitypackage
Chức năng đám mây FirebaseFunctions.unitypackage
Cloud Firestore (alpha) FirebaseFirestore.unitypackage
Lưu trữ đám mây FirebaseStorage.unitypackage
Cơ sở dữ liệu thời gian thực FirebaseDatabase.unitypackage
Cấu hình từ xa FirebaseRemoteConfig.unitypackage

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 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àn hình.

Bước tiếp theo