Como implementar o Hilt com Firebase no Android

Feb 07 2023
Hilt é uma estrutura de injeção de dependência para Android que fornece uma maneira padrão de gerenciar as dependências em seu aplicativo. O Firebase é uma plataforma de back-end como serviço (BaaS) que fornece uma variedade de serviços para aplicativos móveis e da web.

Hilt é uma estrutura de injeção de dependência para Android que fornece uma maneira padrão de gerenciar as dependências em seu aplicativo. O Firebase é uma plataforma de back-end como serviço (BaaS) que fornece uma variedade de serviços para aplicativos móveis e da web. Neste blog, veremos como implementar o Hilt com Firebase em um aplicativo Android.

Direitos de imagem de desenvolvedores Android

Etapa 1: adicionar dependências Hilt e Firebase ao seu projeto

Primeiro, adicione a dependência do Hilt ao arquivo build.gradle no nível do aplicativo. A versão mais recente do Hilt no momento da escrita é 2.28-alpha:

implementation 'com.google.dagger:hilt-android:2.28-alpha'
annotationProcessor 'com.google.dagger:hilt-android-compiler:2.28-alpha'

implementation 'com.google.firebase:firebase-core:20.2.0'
implementation 'com.google.firebase:firebase-auth:20.2.0'
implementation 'com.google.firebase:firebase-firestore:21.5.0'

Crie uma classe Application e anote-a com @HiltAndroidApp. Essa classe serve como ponto de entrada para o Hilt e é usada para inicializar os componentes do Hilt em seu aplicativo.

@HiltAndroidApp
class MyApplication : Application() {
  override fun onCreate() {
    super.onCreate()
    // Initialize Firebase
    FirebaseApp.initializeApp(this)
  }
}

Crie um módulo Hilt para Firebase para fornecer dependências a outros componentes em seu aplicativo. Um módulo é uma classe que define como fornecer dependências. Para criar um módulo Hilt, anote a classe com @Modulee@InstallIn(SingletonComponent::class)

@Module
@InstallIn(SingletonComponent::class)
class FirebaseModule {
  @Provides
  fun provideFirebaseAuth(): FirebaseAuth {
    return FirebaseAuth.getInstance()
  }

  @Provides
  fun provideFirebaseFirestore(): FirebaseFirestore {
    return FirebaseFirestore.getInstance()
  }
}

Para usar as dependências do Firebase em seus componentes, use a @Injectanotação para declarar as dependências. Por exemplo, para usar FirebaseAuth em uma atividade, adicione o seguinte código

class MainActivity : AppCompatActivity() {
  @Inject lateinit var firebaseAuth: FirebaseAuth
  @Inject lateinit var firebaseFirestore: FirebaseFirestore

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_main)

    // Use firebaseAuth and firebaseFirestore
  }
}

Atualize seu AndroidManifest.

Encontrar suporte completo para implementação de injeção de dependência com o Firebase é um pouco complicado, mas em outro artigo aprenderemos como implementá-lo em suas diferentes camadas para manter uma estrutura correta e limpa do nosso projeto.