获取我们在 Firebase 峰会上发布的所有信息,了解 Firebase 可如何帮助您加快应用开发速度并满怀信心地运行应用。了解详情

开始在 Android 上使用带有 Play Integrity 的 App Check

此页面向您展示如何使用内置的 Play Integrity 提供程序在 Android 应用程序中启用 App Check。当您启用 App Check 时,您有助于确保只有您的应用可以访问您项目的 Firebase 资源。请参阅此功能的概述

目前,内置的 Play Integrity 提供程序仅支持 Google Play 分发的 Android 应用程序。要使用 Play Integrity 的离线功能,或将 App Check 与您自己的自定义提供程序一起使用,请参阅实施自定义 App Check 提供程序

1. 设置您的 Firebase 项目

  1. 如果您还没有将 Firebase 添加到您的 Android 项目中,请将其添加到您的 Android 项目中。

  2. 启用 Play Integrity API:

    1. Google Play Console中,选择您的应用,或者如果您尚未添加它,则添加它。

    2. Release部分,点击Setup > App integrity

    3. Integrity API页面上,点击Link project ,然后从 Google Cloud 项目列表中选择您的 Firebase 项目。

      您在此处选择的项目必须与您注册应用程序的项目相同(请参阅下一步)。

  3. 在 Firebase 控制台的App Check部分中注册您的应用以使用 Play Integrity 提供商的 App Check。您需要提供应用签名证书的 SHA-256 指纹

    您通常需要注册所有项目的应用程序,因为一旦您为 Firebase 产品启用强制执行,只有注册的应用程序才能访问该产品的后端资源。

  4. 可选:在应用程序注册设置中,为提供商颁发的 App Check 令牌设置自定义生存时间 (TTL)。您可以将 TTL 设置为 30 分钟到 7 天之间的任何值。更改此值时,请注意以下权衡:

    • 安全性:较短的 TTL 提供更强的安全性,因为它减少了攻击者可以滥用泄漏或拦截令牌的窗口。
    • 性能:更短的 TTL 意味着您的应用程序将更频繁地执行证明。由于每次执行应用证明过程都会增加网络请求的延迟,因此较短的 TTL 会影响应用的性能。
    • 配额和成本:较短的 TTL 和频繁的重新证明会更快地耗尽您的配额,而对于付费服务,可能会花费更多。请参阅配额和限制

    1 小时的默认 TTL 对于大多数应用程序来说是合理的。请注意,App Check 库会在 TTL 持续时间的一半左右刷新令牌。

2.将App Check库添加到您的应用中

在您的模块(应用程序级)Gradle 文件(通常为<project>/<app-module>/build.gradle )中,添加 App Check Android 库的依赖项。我们建议使用Firebase Android BoM来控制库版本。

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

通过使用Firebase Android BoM ,您的应用将始终使用兼容版本的 Firebase Android 库。

(备选)使用 BoM 的情况下添加 Firebase 库依赖项

如果您选择不使用 Firebase BoM,则必须在其依赖项行中指定每个 Firebase 库版本。

请注意,如果您在应用中使用多个Firebase 库,我们强烈建议您使用 BoM 来管理库版本,以确保所有版本都兼容。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.1'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

通过使用Firebase Android BoM ,您的应用将始终使用兼容版本的 Firebase Android 库。

(备选)使用 BoM 的情况下添加 Firebase 库依赖项

如果您选择不使用 Firebase BoM,则必须在其依赖项行中指定每个 Firebase 库版本。

请注意,如果您在应用中使用多个Firebase 库,我们强烈建议您使用 BoM 来管理库版本,以确保所有版本都兼容。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.1'
}

3.初始化App Check

将以下初始化代码添加到您的应用程序,以便它在您使用任何其他 Firebase SDK 之前运行:

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance()
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

下一步

在您的应用程序中安装 App Check 库后,开始将更新后的应用程序分发给您的用户。

更新后的客户端应用程序将开始发送 App Check 令牌及其向 Firebase 发出的每个请求,但 Firebase 产品不会要求令牌有效,直到您在 Firebase 控制台的 App Check 部分启用强制执行。

监控指标并启用强制执行

但是,在您启用强制执行之前,您应该确保这样做不会干扰您现有的合法用户。另一方面,如果您发现对应用资源的可疑使用,您可能希望尽快启用强制措施。

为帮助做出此决定,您可以查看您使用的服务的 App Check 指标:

启用 App Check 强制执行

当您了解 App Check 将如何影响您的用户并准备好继续操作时,您可以启用 App Check 强制执行:

在调试环境中使用 App Check

如果在为 App Check 注册您的应用程序后,您希望在 App Check 通常不会归类为有效的环境中运行您的应用程序,例如开发期间的模拟器,或来自持续集成 (CI) 环境,您可以创建您的应用程序的调试版本,使用 App Check 调试提供程序而不是真正的证明提供程序。

请参阅将 App Check 与 Android 上的调试提供程序一起使用

,

此页面向您展示如何使用内置的 Play Integrity 提供程序在 Android 应用程序中启用 App Check。当您启用 App Check 时,您有助于确保只有您的应用可以访问您项目的 Firebase 资源。请参阅此功能的概述

目前,内置的 Play Integrity 提供程序仅支持 Google Play 分发的 Android 应用程序。要使用 Play Integrity 的离线功能,或将 App Check 与您自己的自定义提供程序一起使用,请参阅实施自定义 App Check 提供程序

1. 设置您的 Firebase 项目

  1. 如果您还没有将 Firebase 添加到您的 Android 项目中,请将其添加到您的 Android 项目中。

  2. 启用 Play Integrity API:

    1. Google Play Console中,选择您的应用,或者如果您尚未添加它,则添加它。

    2. Release部分,点击Setup > App integrity

    3. Integrity API页面上,点击Link project ,然后从 Google Cloud 项目列表中选择您的 Firebase 项目。

      您在此处选择的项目必须与您注册应用程序的项目相同(请参阅下一步)。

  3. 在 Firebase 控制台的App Check部分中注册您的应用以使用 Play Integrity 提供商的 App Check。您需要提供应用签名证书的 SHA-256 指纹

    您通常需要注册所有项目的应用程序,因为一旦您为 Firebase 产品启用强制执行,只有注册的应用程序才能访问该产品的后端资源。

  4. 可选:在应用程序注册设置中,为提供商颁发的 App Check 令牌设置自定义生存时间 (TTL)。您可以将 TTL 设置为 30 分钟到 7 天之间的任何值。更改此值时,请注意以下权衡:

    • 安全性:较短的 TTL 提供更强的安全性,因为它减少了攻击者可以滥用泄漏或拦截令牌的窗口。
    • 性能:更短的 TTL 意味着您的应用程序将更频繁地执行证明。由于每次执行应用证明过程都会增加网络请求的延迟,因此较短的 TTL 会影响应用的性能。
    • 配额和成本:较短的 TTL 和频繁的重新证明会更快地耗尽您的配额,而对于付费服务,可能会花费更多。请参阅配额和限制

    1 小时的默认 TTL 对于大多数应用程序来说是合理的。请注意,App Check 库会在 TTL 持续时间的一半左右刷新令牌。

2.将App Check库添加到您的应用中

在您的模块(应用程序级)Gradle 文件(通常为<project>/<app-module>/build.gradle )中,添加 App Check Android 库的依赖项。我们建议使用Firebase Android BoM来控制库版本。

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

通过使用Firebase Android BoM ,您的应用将始终使用兼容版本的 Firebase Android 库。

(备选)使用 BoM 的情况下添加 Firebase 库依赖项

如果您选择不使用 Firebase BoM,则必须在其依赖项行中指定每个 Firebase 库版本。

请注意,如果您在应用中使用多个Firebase 库,我们强烈建议您使用 BoM 来管理库版本,以确保所有版本都兼容。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.1'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

通过使用Firebase Android BoM ,您的应用将始终使用兼容版本的 Firebase Android 库。

(备选)使用 BoM 的情况下添加 Firebase 库依赖项

如果您选择不使用 Firebase BoM,则必须在其依赖项行中指定每个 Firebase 库版本。

请注意,如果您在应用中使用多个Firebase 库,我们强烈建议您使用 BoM 来管理库版本,以确保所有版本都兼容。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.1'
}

3.初始化App Check

将以下初始化代码添加到您的应用程序,以便它在您使用任何其他 Firebase SDK 之前运行:

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance()
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

下一步

在您的应用程序中安装 App Check 库后,开始将更新后的应用程序分发给您的用户。

更新后的客户端应用程序将开始发送 App Check 令牌及其向 Firebase 发出的每个请求,但 Firebase 产品不会要求令牌有效,直到您在 Firebase 控制台的 App Check 部分启用强制执行。

监控指标并启用强制执行

但是,在您启用强制执行之前,您应该确保这样做不会干扰您现有的合法用户。另一方面,如果您发现对应用资源的可疑使用,您可能希望尽快启用强制措施。

为帮助做出此决定,您可以查看您使用的服务的 App Check 指标:

启用 App Check 强制执行

当您了解 App Check 将如何影响您的用户并准备好继续操作时,您可以启用 App Check 强制执行:

在调试环境中使用 App Check

如果在为 App Check 注册您的应用程序后,您希望在 App Check 通常不会归类为有效的环境中运行您的应用程序,例如开发期间的模拟器,或来自持续集成 (CI) 环境,您可以创建您的应用程序的调试版本,使用 App Check 调试提供程序而不是真正的证明提供程序。

请参阅将 App Check 与 Android 上的调试提供程序一起使用

,

此页面向您展示如何使用内置的 Play Integrity 提供程序在 Android 应用程序中启用 App Check。当您启用 App Check 时,您有助于确保只有您的应用可以访问您项目的 Firebase 资源。请参阅此功能的概述

目前,内置的 Play Integrity 提供程序仅支持 Google Play 分发的 Android 应用程序。要使用 Play Integrity 的离线功能,或将 App Check 与您自己的自定义提供程序一起使用,请参阅实施自定义 App Check 提供程序

1. 设置您的 Firebase 项目

  1. 如果您还没有将 Firebase 添加到您的 Android 项目中,请将其添加到您的 Android 项目中。

  2. 启用 Play Integrity API:

    1. Google Play Console中,选择您的应用,或者如果您尚未添加它,则添加它。

    2. Release部分,点击Setup > App integrity

    3. Integrity API页面上,点击Link project ,然后从 Google Cloud 项目列表中选择您的 Firebase 项目。

      您在此处选择的项目必须与您注册应用程序的项目相同(请参阅下一步)。

  3. 在 Firebase 控制台的App Check部分中注册您的应用以使用 Play Integrity 提供商的 App Check。您需要提供应用签名证书的 SHA-256 指纹

    您通常需要注册所有项目的应用程序,因为一旦您为 Firebase 产品启用强制执行,只有注册的应用程序才能访问该产品的后端资源。

  4. 可选:在应用程序注册设置中,为提供商颁发的 App Check 令牌设置自定义生存时间 (TTL)。您可以将 TTL 设置为 30 分钟到 7 天之间的任何值。更改此值时,请注意以下权衡:

    • 安全性:较短的 TTL 提供更强的安全性,因为它减少了攻击者可以滥用泄漏或拦截令牌的窗口。
    • 性能:更短的 TTL 意味着您的应用程序将更频繁地执行证明。由于每次执行应用证明过程都会增加网络请求的延迟,因此较短的 TTL 会影响应用的性能。
    • 配额和成本:较短的 TTL 和频繁的重新证明会更快地耗尽您的配额,而对于付费服务,可能会花费更多。请参阅配额和限制

    1 小时的默认 TTL 对于大多数应用程序来说是合理的。请注意,App Check 库会在 TTL 持续时间的一半左右刷新令牌。

2.将App Check库添加到您的应用中

在您的模块(应用程序级)Gradle 文件(通常为<project>/<app-module>/build.gradle )中,添加 App Check Android 库的依赖项。我们建议使用Firebase Android BoM来控制库版本。

Kotlin+KTX

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

通过使用Firebase Android BoM ,您的应用将始终使用兼容版本的 Firebase Android 库。

(备选)使用 BoM 的情况下添加 Firebase 库依赖项

如果您选择不使用 Firebase BoM,则必须在其依赖项行中指定每个 Firebase 库版本。

请注意,如果您在应用中使用多个Firebase 库,我们强烈建议您使用 BoM 来管理库版本,以确保所有版本都兼容。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.1'
}

Java

dependencies {
    // Import the BoM for the Firebase platform
    implementation platform('com.google.firebase:firebase-bom:31.2.0')

    // Add the dependency for the App Check library
    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity'
}

通过使用Firebase Android BoM ,您的应用将始终使用兼容版本的 Firebase Android 库。

(备选)使用 BoM 的情况下添加 Firebase 库依赖项

如果您选择不使用 Firebase BoM,则必须在其依赖项行中指定每个 Firebase 库版本。

请注意,如果您在应用中使用多个Firebase 库,我们强烈建议您使用 BoM 来管理库版本,以确保所有版本都兼容。

dependencies {
    // Add the dependency for the App Check library
    // When NOT using the BoM, you must specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-appcheck-playintegrity:16.1.1'
}

3.初始化App Check

将以下初始化代码添加到您的应用程序,以便它在您使用任何其他 Firebase SDK 之前运行:

Kotlin+KTX

FirebaseApp.initializeApp(/*context=*/this)
val firebaseAppCheck = FirebaseAppCheck.getInstance()
firebaseAppCheck.installAppCheckProviderFactory(
    PlayIntegrityAppCheckProviderFactory.getInstance()
)

Java

FirebaseApp.initializeApp(/*context=*/ this);
FirebaseAppCheck firebaseAppCheck = FirebaseAppCheck.getInstance();
firebaseAppCheck.installAppCheckProviderFactory(
        PlayIntegrityAppCheckProviderFactory.getInstance());

下一步

在您的应用程序中安装 App Check 库后,开始将更新后的应用程序分发给您的用户。

更新后的客户端应用程序将开始发送 App Check 令牌及其向 Firebase 发出的每个请求,但 Firebase 产品不会要求令牌有效,直到您在 Firebase 控制台的 App Check 部分启用强制执行。

监控指标并启用强制执行

但是,在您启用强制执行之前,您应该确保这样做不会干扰您现有的合法用户。另一方面,如果您发现对应用资源的可疑使用,您可能希望尽快启用强制措施。

为帮助做出此决定,您可以查看您使用的服务的 App Check 指标:

启用 App Check 强制执行

当您了解 App Check 将如何影响您的用户并准备好继续操作时,您可以启用 App Check 强制执行:

在调试环境中使用 App Check

如果在为 App Check 注册您的应用程序后,您希望在 App Check 通常不会归类为有效的环境中运行您的应用程序,例如开发期间的模拟器,或来自持续集成 (CI) 环境,您可以创建您的应用程序的调试版本,使用 App Check 调试提供程序而不是真正的证明提供程序。

请参阅将 App Check 与 Android 上的调试提供程序一起使用