Cómo implementar Hilt con Firebase en Android

Feb 07 2023
Hilt es un marco de inyección de dependencias para Android que proporciona una forma estándar de administrar las dependencias en su aplicación. Firebase es una plataforma Backend-as-a-Service (BaaS) que proporciona una variedad de servicios para aplicaciones móviles y web.

Hilt es un marco de inyección de dependencias para Android que proporciona una forma estándar de administrar las dependencias en su aplicación. Firebase es una plataforma Backend-as-a-Service (BaaS) que proporciona una variedad de servicios para aplicaciones móviles y web. En este blog, veremos cómo implementar Hilt con Firebase en una aplicación de Android.

Derechos de imagen de los desarrolladores de Android

Paso 1: Agrega dependencias de Hilt y Firebase a tu proyecto

Primero, agregue la dependencia de Hilt a su archivo build.gradle de nivel de aplicación. La última versión de Hilt en el momento de escribir este artículo es 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'

Cree una clase de aplicación y anótela con @HiltAndroidApp. Esta clase sirve como punto de entrada para Hilt y se usa para inicializar los componentes de Hilt en su aplicación.

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

Cree un módulo Hilt para Firebase para proporcionar dependencias a otros componentes en su aplicación. Un módulo es una clase que define cómo proporcionar dependencias. Para crear un módulo Hilt, anote la clase con @Moduley@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 dependencias de Firebase en sus componentes, use la @Injectanotación para declarar las dependencias. Por ejemplo, para usar FirebaseAuth en una actividad, agregue el siguiente 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
  }
}

Actualice su AndroidManifest.

Encontrar soporte de implementación completo para la inyección de dependencias con Firebase es un poco complicado, pero en otro artículo aprenderemos cómo implementarlo en sus diferentes capas para mantener una estructura correcta y limpia de nuestro proyecto.