開始在 Unity 中搭配自訂提供者使用 App Check
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
本頁面說明如何使用自訂 App Check 提供者,在 Unity 應用程式中啟用 App Check。啟用 App Check 後,您就能確保只有您的應用程式可以存取專案的 Firebase 資源。
如要搭配預設提供者使用 App Check,請參閱「在 Unity 中使用預設提供者啟用 App Check」。
事前準備
1. 將 App Check 程式庫新增至應用程式
按照 App Check 的設定操作說明,在依附元件組合中加入 App Check 程式庫。
2. 實作 App Check 介面
首先,您需要建立實作 IAppCheckProvider
和 IAppCheckProviderFactory
介面的類別。
AppCheckProvider
類別必須具有 GetTokenAsync()
方法,用於收集自訂 App Check 供應商所需的任何資訊,做為真實性的證明,並將其傳送至您的權杖取得服務,以換取 App Check 權杖。App Check SDK 會處理權杖快取,因此在實作 GetTokenAsync()
時,請一律取得新的權杖。
public class YourCustomAppCheckProvider : IAppCheckProvider {
public Task<AppCheckToken> GetTokenAsync() {
// Logic to exchange proof of authenticity for an App Check token and
// expiration time.
// ...
AppCheckToken appCheckToken = new AppCheckToken() {
Token = tokenFromAbove,
ExpireTime = DateTime.UtcNow.AddMinutes(60)
};
return Task<AppCheckToken>.FromResult(appCheckToken);
}
};
此外,請實作 AppCheckProviderFactory
類別,以便建立 AppCheckProvider
實作的例項:
public class YourCustomAppCheckProviderFactory : IAppCheckProviderFactory {
IAppCheckProvider CreateProvider(FirebaseApp app) {
// Create and return an AppCheckProvider object.
return new YourCustomAppCheckProvider(app);
}
}
3. 初始化 App Check
將下列初始化程式碼加入應用程式,讓應用程式在使用任何其他 Firebase SDK 前優先執行:
FirebaseAppCheck.SetAppCheckProviderFactory(
new YourCustomAppCheckProviderFactory());
後續步驟
在應用程式中安裝 App Check 程式庫後,請開始向使用者發布更新版應用程式。
更新後的用戶端應用程式會開始傳送 App Check 權杖,並附帶每項對 Firebase 提出的要求,但 Firebase 產品不會要求權杖必須有效,除非您在 Firebase 控制台的 App Check 部分啟用強制執行功能。
監控指標並啟用強制執行功能
不過,啟用違規處置前,請先確認這麼做不會影響現有的合法使用者。另一方面,如果您發現應用程式資源遭到可疑使用,可能需要盡快啟用強制執行機制。
為協助您做出這項決定,您可以查看所用服務的 App Check 指標:
啟用 App Check 強制執行功能
瞭解 App Check 對使用者的影響,並準備繼續執行時,您可以啟用 App Check 強制執行機制:
- 為 Data Connect、Firebase AI Logic、Realtime Database、Cloud Firestore、Cloud Storage、Authentication、Google 身分識別服務 (適用於 iOS)、Maps JavaScript API 和 Places API (新版) 啟用 App Check 強制執行。
- 為 Cloud Functions 啟用 App Check 強制執行設定。
在偵錯環境中使用 App Check
如果您在為應用程式註冊 App Check 後,想在 App Check 通常不會歸類為有效的環境中執行應用程式,例如開發期間的模擬器,或從持續整合 (CI) 環境,您可以建立應用程式的偵錯版本,使用 App Check 偵錯提供者,而非實際的認證提供者。
請參閱「在 Unity 中搭配調試供應器使用 App Check」。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-06-18 (世界標準時間)。
[null,null,["上次更新時間:2025-06-18 (世界標準時間)。"],[],[],null,["This page shows you how to enable App Check in a Unity app, using [your\ncustom App Check provider](/docs/app-check/custom-provider). When you enable\nApp Check, you help ensure that only your app can access your project's\nFirebase resources.\n\nIf you want to use App Check with the default providers, see\n[Enable App Check with default providers in Unity](/docs/app-check/unity/default-providers).\n\nBefore you begin\n\n- [Add Firebase to your Unity project](/docs/unity/setup) if you haven't\n already done so.\n\n- [Implement your custom App Check provider's server-side logic](/docs/app-check/custom-provider).\n\n1. Add the App Check library to your app\n\nInclude the App Check library in your set of dependencies, following\n[the setup instructions](/docs/unity/setup#add-sdks) for App Check.\n\n2. Implement the App Check interfaces\n\nFirst, you need to create classes that implement the `IAppCheckProvider` and\n`IAppCheckProviderFactory` interfaces.\n\nYour `AppCheckProvider` class must have a `GetTokenAsync()` method, which\ncollects whatever information your custom App Check provider requires as\nproof of authenticity, and sends it to your token acquisition service in\nexchange for an App Check token. The App Check SDK handles token\ncaching, so always get a new token in your implementation of `GetTokenAsync()`. \n\n public class YourCustomAppCheckProvider : IAppCheckProvider {\n public Task\u003cAppCheckToken\u003e GetTokenAsync() {\n // Logic to exchange proof of authenticity for an App Check token and\n // expiration time.\n // ...\n\n AppCheckToken appCheckToken = new AppCheckToken() {\n Token = tokenFromAbove,\n ExpireTime = DateTime.UtcNow.AddMinutes(60)\n };\n\n return Task\u003cAppCheckToken\u003e.FromResult(appCheckToken);\n }\n };\n\nAlso, implement a `AppCheckProviderFactory` class that creates instances of your\n`AppCheckProvider` implementation: \n\n public class YourCustomAppCheckProviderFactory : IAppCheckProviderFactory {\n IAppCheckProvider CreateProvider(FirebaseApp app) {\n // Create and return an AppCheckProvider object.\n return new YourCustomAppCheckProvider(app);\n }\n }\n\n3. Initialize App Check\n\nAdd the following initialization code to your app so that it runs before you use\nany other Firebase SDKs: \n\n FirebaseAppCheck.SetAppCheckProviderFactory(\n new YourCustomAppCheckProviderFactory());\n\nNext steps\n\nOnce the App Check library is installed in your app, start distributing the\nupdated app to your users.\n\nThe updated client app will begin sending App Check tokens along with every\nrequest it makes to Firebase, but Firebase products will not require the tokens\nto be valid until you enable enforcement in the App Check section of the\nFirebase console.\n\nMonitor metrics and enable enforcement\n\nBefore you enable enforcement, however, you should make sure that doing so won't\ndisrupt your existing legitimate users. On the other hand, if you're seeing\nsuspicious use of your app resources, you might want to enable enforcement\nsooner.\n\nTo help make this decision, you can look at App Check metrics for the\nservices you use:\n\n- [Monitor App Check request metrics](/docs/app-check/monitor-metrics) for Firebase AI Logic, Data Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API, and Places API (New).\n- [Monitor App Check request metrics for Cloud Functions](/docs/app-check/monitor-functions-metrics).\n\nEnable App Check enforcement\n\nWhen you understand how App Check will affect your users and you're ready to\nproceed, you can enable App Check enforcement:\n\n- [Enable App Check enforcement](/docs/app-check/enable-enforcement) for Firebase AI Logic, Data Connect, Realtime Database, Cloud Firestore, Cloud Storage, Authentication, Google Identity for iOS, Maps JavaScript API, and Places API (New).\n- [Enable App Check enforcement for Cloud Functions](/docs/app-check/cloud-functions).\n\nUse App Check in debug environments\n\nIf, after you have registered your app for App Check, you want to run your\napp in an environment that App Check would normally not classify as valid,\nsuch as an emulator during development, or from a continuous integration (CI)\nenvironment, you can create a debug build of your app that uses the\nApp Check debug provider instead of a real attestation provider.\n\nSee [Use App Check with the debug provider in Unity](/docs/app-check/unity/debug-provider)."]]