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

Thêm Firebase vào dự án Unity

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, Mecharoulette, mà bạn có thể tải xuống từ GitHub , App StoreGoogle Play Store .

Mecharoulette (GitHub)

Mecharoulette (App Store)

Mecharoulette (Play Store)


Tìm hiểu thêm thông tin về việc tăng sức mạnh cho các 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 Firebase Unity SDK .

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

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

  • (Chỉ dành cho iOS) Cài đặt như sau:

    • Xcode 9.4.1 trở lên
    • CacaoPods 1.4.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:

    • Dành cho iOS - nhắm mục tiêu iOS 8 trở lên
    • Dành cho Android - nhắm 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 vật lý hoặc sử dụng trình giả lập 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 những mẫu khởi động nhanh của chúng tôi.

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

Trước khi bạn có thể thêm Firebase vào dự án Unity của mình, bạn cần tạo dự án Firebase để kết nối với dự án Unity của bạn. Truy cập 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. Chuyển đến bảng điều khiển Firebase .

  2. Ở trung tâm của trang tổng quan 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 cùng một lúc.

  4. Nhập ID (nền tảng) dành riêng cho 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 .

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

  5. (Tùy chọn) Nhập (các) biệt danh dành riêng cho nền tảng của dự án Unity của bạn.
    Những biệt danh này là nội bộ, số nhận dạng 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. Lấy (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ổ Project 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, bấm Tiếp theo .

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

Bạn có thể thêm các sản phẩm Firebase được hỗ trợ vào dự án Unity của mình bằng Trình quản lý gói Unity hoặc bạn có thể cài đặt SDK theo cách thủ công.

Quản lý gói Unity

Nếu bạn đang sử dụng Unity 2018.4 hoặc mới hơn và .NET 4.x hoặc .NET Standard 2.0, bạn có thể cài đặt các thành phần Firebase SDK bằng Trình quản lý gói Unity:

  1. Thêm Đăng ký gói trò chơi của Google vào dự án Unity của bạn.

    • Nếu bạn chưa bao giờ nhập SDK Firebase và EDM4U (tên chính thức là Play Resolver), bạn có thể thêm khối sau vào Packages/manifest.json .

       "scopedRegistries": [
        {
          "name": "Game Package Registry by Google",
          "url": "https://unityregistry-pa.googleapis.com",
          "scopes": [
            "com.google"
          ]
        }
      ]
       

      Lưu ý rằng một số SDK khác, chẳng hạn như SDK Facebook, có thể chứa EDM4U trong .unitypackage của chúng. Kiểm tra xem các thư mục Assets/ExternalDependencyManager hoặc Assets/PlayServicesResolver có tồn tại không. Nếu các thư mục này tồn tại, hãy xóa chúng trước khi cài đặt bất kỳ SDK Firebase nào thông qua Trình quản lý gói Unity.

    • Nếu bạn cần di chuyển SDK hiện có hoặc thích một phương thức tương tác hơn, hãy nhập Trình quản lý phụ thuộc bên ngoài mới nhất cho Unity (EDM4U) .

      Trình giải quyết Trình quản lý gói Unity sẽ nhắc bạn thêm Sổ đăng ký gói trò chơi của Google vào dự án của bạn. Chọn sổ đăng ký và bấm vào nút Thêm đăng ký đã chọn.

      • EDM4U thêm sổ đăng ký vào Packages/manifest.json trong thư mục dự án Unity hiện tại của bạn.

      • Bạn cũng có thể thêm vào sổ đăng ký này một cách cẩn thận sau khi sử dụng Tài sản > Trình quản lý phụ thuộc bên ngoài > Trình giải quyết trình quản lý gói Unity > Thêm đăng ký hoặc Cửa sổ > Google > Đăng ký gói trò chơi > Thêm vào tùy chọn menu.

  2. Di chuyển các gói Firebase và EDM4U đã nhập thông qua .unitypackage sang Unity Gói Manager. Điều này có thể được thực hiện bằng một trong các phương pháp sau.

    • Sau khi đăng ký được thêm bởi EDM4U, một hộp thoại có tiêu đề "Gói di chuyển" sẽ bật lên. Hộp thoại này liệt kê mọi gói có sẵn để được cài đặt thông qua Trình quản lý gói Unity. Chúng tôi khuyên bạn nên chọn tất cả chúng và nhấp vào nút Áp dụng .

    • Bạn cũng có thể hiển thị thủ công hộp thoại này sau bằng cách sử dụng Tài sản > Trình quản lý phụ thuộc bên ngoài > Trình giải quyết trình quản lý gói Unity > Di chuyển gói tùy chọn.

    • Bạn cũng có thể di chuyển thủ công mọi gói được nhập thông qua .unitypackage với các bước sau.

      1. Xóa cả Firebase Unity SDK và EDM4U khỏi thư mục Assets của bạn. EDM4U cung cấp một công cụ để gỡ cài đặt các gói được quản lý có thể truy cập bằng cách sử dụng tùy chọn Tài sản > Trình quản lý phụ thuộc bên ngoài > Trình xử lý phiên bản > Gỡ cài đặt tùy chọn trình đơn Gói được quản lý . Chọn tất cả SDK Firebase cũng như Trình quản lý phụ thuộc bên ngoài và nhấp vào Gỡ cài đặt các gói đã chọn .

        • Ngoài ra, bạn cũng có thể xóa SDK thủ công khỏi thư mục Tài sản .
      2. Cài đặt các thành phần SDK của Firebase Unity bằng Trình quản lý gói Unity bằng cách chọn Window > Gói Manager và tìm kiếm Firebase . Các thành phần SDK của Firebase Unity có thể được cài đặt, chỉnh sửa và loại bỏ thông qua giao diện này.

  3. Giờ đây, bạn có thể khám phá và cài đặt bất kỳ thành phần SDK Firebase Unity hoặc gói Google nào bằng Trình quản lý gói Unity bằng cách chọn Window > Gói Manager . Tất cả các thành phần này có thể được cài đặt, chỉnh sửa và loại bỏ thông qua giao diện này.

Hướng dẫn cài đặt

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

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

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

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

  3. Từ SDK đã giải nén, 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 Firebase:
      FirebaseAuth.unitypackageFirebaseDatabase.unitypackage

    Phân tích 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 Firebase:
    FirebaseAuth.unitypackageFirebaseDatabase.unitypackage

  4. Trong cửa sổ Nhập gói Unity , bấm Nhập .

  5. Quay lại bảng điều khiển Firebase, trong quy trình thiết lập, bấm Tiếp theo .

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

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

Thêm mã sau đây khi bắt đầ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ụ Google Play lên phiên bản được yêu cầu bởi Firebase Unity SDK 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.

Vấn đề đã biết

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

Firebase hỗ trợ .NET 4.x như một 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 các dotnet3dotnet4 của SDK Firebase Unity.

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 bạn, bạn sẽ thấy các lỗi biên dịch từ một số loại trong khung .NET được Parse SDK triển khai.

Để khắc phục lỗi biên dịch, nếu bạn đang sử dụng .NET 3.x:

  1. Xóa hoặc vô hiệu hóa 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. Kích hoạ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

Để khắc phục lỗi biên dịch, nếu bạn đang sử dụng .NET 4.x:

  1. Xóa hoặc vô hiệu hóa 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. Kích hoạ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

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 Tài sản > Trình giải quyết dịch vụ chơi > Trình xử lý phiên bản > Cập nhật để bật 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 như một 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 loại chuyển tiếp các loại Parse (ví dụ: triển khai Parse của System.Threading.Tasks.Task ) cho khung .NET. Thật không may, IL2CPP (một bộ chuyển đổi chuyển đổi C # thành 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 các lỗi xây 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 tại không có cách khắc phục có sẵn cho .NET 4.x IL2CPP xây dựng lỗi 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.

Kết nối mạng Unity 2017.2

Cơ sở dữ liệu thời gian thực 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ó cách giải quyết cho vấn đề này, vì vậy bạn phải sử dụng một phiên bản khác của Unity, ví dụ phiên bản 2017.1 hoặc 2017.3.

Thiếu tệp cấu hình Android Firebase 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ụ chỉnh sửa 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 tài nguyên Android Xây dựng Android, để SDK Firebase có thể sử dụng nó để khởi tạo phiên bản FirebaseApp mặc định.

Chức năng bao gồm tệp tài nguyên tùy chỉnh bị hỏng hoặc thay đổi trong Unity 2020. Do đó, ứng dụng sẽ không thể tạo phiên bản mặc định.

Cách giải quyết cho vấn đề này là thêm thủ công tài nguyên vào mainTemplate.gradle .

  1. Mở chơi Settings trong Unity, mà thường có thể được tìm thấy tại Edit> Cài đặt dự án ...> Chơi tùy chọn trình đơn.
  2. Tìm Custom Main Gradle Template chọn Custom Main Gradle Template trong Cài đặt xuất bản và đảm bảo rằng nó đã được chọn.
  3. Mở Assets/Plugins/Android/mainTemplate.gradle với trình chỉnh sửa văn bản.
  4. Thêm khối sau vào mainTemplate.gradle .

     android {
        sourceSets {
            main {
                def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")
                res.srcDirs += (unityProjectPath +  '/Assets/Plugins/Android/Firebase/res/values/google-services.xml')
            }
        }
    }
     

Xung đột cài đặt khi sử dụng Unity Gói Manager

Một gói có thể được cài đặt từ các nguồn khác nhau. Ví dụ: Trình quản lý phụ thuộc bên ngoài cho Unity (viết tắt là EDM4U, trước đây được gọi là Bộ giải quyết dịch vụ Play hoặc Bộ giải quyết Unity Jar) có thể được cài đặt theo bất kỳ cách nào sau đây.

  • Nhập trình quản lý phụ thuộc bên ngoài .unitypackage .
  • Nhập SDK Firebase hoặc SDK khác có chứa EDM4U trong .unitypackage của họ.
  • Cài đặt Trình quản lý phụ thuộc bên ngoài thông qua Trình quản lý gói Unity
  • Cài đặt SDK Firebase hoặc SDK khác, đặt EDM4U làm phụ thuộc thông qua Trình quản lý gói Unity .

Khi EDM4U (hoặc Firebase) được cài đặt thông qua .unitypackage và thông qua Trình quản lý gói Unity cùng một lúc, sẽ xảy ra xung đột cài đặt và Unity có thể hiển thị lỗi về xung đột GUID hoặc xung đột biểu tượng. EDM4U hiện không cung cấp giải pháp cho các tình huống như vậy. Khi điều này xảy ra, đây là cách giải quyết:

  • Nếu bạn đã di chuyển Firebase và EDM4U sang Unity Gói Manager trước đó và bạn nhập một SDK khác có chứa EDM4U trong .unitypackage , ví dụ: Google Ads hoặc Facebook SDK, bạn chỉ cần xóa các thư mục Assets/ExternalDependencyManager và / hoặc Assets/PlayServicesResolver .
  • Nếu bạn vô tình cài đặt EDM4U thông qua Trình quản lý gói Unity trước khi xóa nó khỏi thư mục Assets , hãy sử dụng các bước sau để giải quyết xung đột:
    1. Hủy bỏ các Assets/ExternalDependencyManager và / hoặc Assets/PlayServicesResolver thư mục.
    2. Gỡ cài đặt tất cả các gói Firebase và EDM4U khỏi Unity Gói Manager
    3. Cài đặt lại tất cả các gói Firebase và EDM4U cần thiết từ UPM.

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 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, sau đó triển khai và thử nghiệm trên thiết bị di động sẽ dễ dàng hơn nhiều. Để 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 Firebase Unity có thể chạy trên Windows, macOS, Linux và từ trong trình soạn thảo 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 Đăng ký ứng dụng của bạn với bước 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 của bạn 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.

    SDK Firebase Unity 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 trình chỉnh sửa.

    1. Khi bạn tạo một FirebaseApp được trình soạn thảo sử dụng, đừng sử dụng thể hiệ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 phiên bản được sử dụng bởi Unity IDE và phiên bản được sử dụng bởi dự án Unity của bạn.

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
Quảng cáo Được phân phối riêng trong Plugin AdMob Unity
phân tích FirebaseAnalytics.unitypackage
Xác thực FirebaseAuth.unitypackage
Đám mây lửa (alpha) FirebaseFirestore.unitypackage
Hàm đám mây FirebaseFunctions.unitypackage
Tin nhắn trên đám mây FirebaseMessaging.unitypackage
(được khuyến nghị) FirebaseAnalytics.unitypackage
Lưu trữ đám mây FirebaseStorage.unitypackage
Tai nạn 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

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

SDK Firebase Unity bao gồm hỗ trợ dòng công việc trên máy tính để bàn cho một tập hợp con các sản phẩm, cho phép một số 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
Hàm đám mây FirebaseFunctions.unitypackage
Đám mây lửa (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 (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 có điều kiện để nhắm mục tiêu vào máy tính để bàn.

Bước tiếp theo