Configuração nativa Android (Flutter)

1. Download do arquivo googleservices.json

1 - Faça login no Firebase e abra seu projeto.
2 - Clique no ícone Configurações e selecione Configurações do projeto.
3 - No cartão Seus aplicativos, selecione na lista o ID do pacote do qual você precisa de um arquivo de configuração.
4 - Clique em GoogleService-Info.plist.

2. Adicione o arquivo googleservices.json em seu projeto

dependencies {
  // Example existing classpath
  classpath 'com.android.tools.build:gradle:3.5.3'
  // Add the google services classpath
  classpath 'com.google.gms:google-services:4.3.2'
}


// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

🚧

Caso não complete esta parte você poderá ter um erro parecido:

java.lang.IllegalStateException:
Default FirebaseApp is not initialized in this process [package name].
Make sure to call FirebaseApp.initializeApp(Context) first.

3. Configuração de dependências

Adicione a dependência com.google.firebase: firebase-messaging em seu arquivo build.gradle de nível de aplicativo, que normalmente está localizado em /android/app/build.gradle.

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.google.firebase:firebase-messaging:20.2.0'
}

4. Configurando o Application

package com.inngage_plugin_example

import io.flutter.app.FlutterApplication
import io.flutter.plugin.common.PluginRegistry
import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback
import io.flutter.plugins.GeneratedPluginRegistrant
import io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService

class Application : FlutterApplication(), PluginRegistrantCallback {

    override fun onCreate() {
        super.onCreate()
        FlutterFirebaseMessagingService.setPluginRegistrant(this);
    }

    override fun registerWith(registry: PluginRegistry?) {
        io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin.registerWith(registry?.registrarFor("io.flutter.plugins.firebasemessaging.FirebaseMessagingPlugin"));
    }
}

Em Application.java, certifique-se de alterar o pacote io.flutter.plugins.firebasemessagingexample; ao identificador do seu pacote. O identificador do seu pacote deve ser algo como com.domain.myapplication.

package com.inngage_plugin_example

5. Configuração do AndroidManifest

Quando o usuário clicar em uma notificação na bandeja do sistema, inclua o seguinte filtro de intenção dentro da tag de seu android / app / src / main / AndroidManifest.xml:

<application android:name=".Application" …>

Inclua o seguinte filtro de intenção dentro da tag de seu android / app / src / main / AndroidManifest.xml:

<intent-filter>
      <action android:name="FLUTTER_NOTIFICATION_CLICK" />
      <category android:name="android.intent.category.DEFAULT" />
  </intent-filter>

Ainda dentro da tag adicione esses atributos que permitem a abertura de notificações em modo Foreground / App Aberto

<activity
    android:showWhenLocked="true"
    android:turnScreenOn="true">