Nesta página, você verá como ativar o App Check nos apps desenvolvidos no Flutter. Para isso, use os provedores padrão, como Play Integrity no Android, Device Check nas plataformas da Apple e reCAPTCHA v3 na Web. Ao ativar o App Check, você ajuda a garantir que apenas seu app possa acessar os recursos do Firebase do seu projeto. Consulte a Visão geral desse recurso.
1. Configurar seu projeto do Firebase
Instale e inicialize o FlutterFire caso ainda não tenha feito isso.
Para usar o App Check com os provedores Play Integrity, Device Check e reCAPTCHA, registre seu app na seção Configurações do projeto > App Check do Console do Firebase.
Geralmente, é necessário registrar todos os apps do projeto porque, depois de ativar a exigência de um produto do Firebase, somente apps registrados poderão acessar os recursos de back-end do produto.
Opcional: nas configurações de registro do aplicativo, defina um time to live (TTL) personalizado para os tokens do App Check emitidos pelo provedor. É possível definir o TTL como qualquer valor entre 30 minutos e 7 dias. Ao mudar esse valor, esteja ciente das seguintes compensações:
- Segurança: os TTLs mais curtos oferecem maior segurança, porque reduzem a janela em que um token vazado ou interceptado pode ser usado por um invasor.
- Desempenho: TTLs mais curtos significam que seu app realizará atestados com mais frequência. Como o processo de atestado do app adiciona latência às solicitações de rede sempre que é executado, um TTL curto pode afetar o desempenho do app.
- Cota e custo: TTLs mais curtos e novos atestados frequentes esgotam sua cota mais rapidamente e, para serviços pagos, podem custar mais. Consulte Cotas e limites.
O TTL padrão é bom para a maioria dos apps. Observe que a biblioteca do App Check atualiza os tokens em aproximadamente metade da duração do TTL.
2. Adicionar a biblioteca do App Check ao seu app
Na raiz do seu projeto do Flutter, execute o seguinte comando para instalar o plug-in:
flutter pub add firebase_app_check
Após a conclusão, recrie o aplicativo do Flutter:
flutter run
3. Inicializar o App Check
Adicione o seguinte código de inicialização ao app para que ele seja executado antes de
você usar os serviços do Firebase, como o Storage, mas após chamar
Firebase.initializeApp()
.
import 'package:flutter/material.dart';
import 'package:firebase_core/firebase_core.dart';
// Import the firebase_app_check plugin
import 'package:firebase_app_check/firebase_app_check.dart';
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
await FirebaseAppCheck.instance.activate(
// You can also use a `ReCaptchaEnterpriseProvider` provider instance as an
// argument for `webProvider`
webProvider: ReCaptchaV3Provider('recaptcha-v3-site-key'),
// Default provider for Android is the Play Integrity provider. You can use the "AndroidProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Safety Net provider
// 3. Play Integrity provider
androidProvider: AndroidProvider.debug,
// Default provider for iOS/macOS is the Device Check provider. You can use the "AppleProvider" enum to choose
// your preferred provider. Choose from:
// 1. Debug provider
// 2. Device Check provider
// 3. App Attest provider
// 4. App Attest provider with fallback to Device Check provider (App Attest provider is only available on iOS 14.0+, macOS 14.0+)
appleProvider: AppleProvider.appAttest,
);
runApp(App());
}
Próximas etapas
Depois que a biblioteca do App Check estiver instalada no seu app, comece a distribuir o app atualizado para os usuários.
O app cliente atualizado vai começar a enviar tokens do App Check em todas as solicitações feitas ao Firebase, mas os produtos dessa plataforma não exigirão que os tokens sejam válidos até que você ative a aplicação obrigatória na seção "App Check" do Console do Firebase.
Monitorar métricas e ativar a aplicação obrigatória
Antes de ativar a aplicação obrigatória, verifique se isso não vai afetar seus usuários legítimos. Por outro lado, se você perceber um uso suspeito dos recursos do seu app, convém ativar a aplicação obrigatória antes do previsto.
Para tomar essa decisão, analise as métricas do App Check nos serviços usados:
- Monitore as métricas de solicitação do App Check no Realtime Database, Cloud Firestore, Cloud Storage e Authentication.
- Monitore as métricas de solicitações do App Check no Cloud Functions.
Ativar a aplicação obrigatória do App Check
Assim que você entender como o App Check vai afetar seus usuários, e se estiver tudo pronto para seguir o processo, ative a aplicação do App Check:
- Ative a aplicação do App Check no Realtime Database, Cloud Firestore, Cloud Storage e Authentication.
- Ative a aplicação obrigatória do App Check no Cloud Functions.
Usar o App Check em ambientes de depuração
Se, depois de registrar seu aplicativo no App Check, você quiser executá-lo em um ambiente que o App Check normalmente não classificaria como válido, como um emulador durante o desenvolvimento ou de uma integração contínua (CI), será possível criar um build de depuração do seu app que use o provedor de depuração do App Check em vez de um provedor de atestado real.
Consulte Usar App Check com o provedor de depuração em apps do Flutter.