So implementieren Sie Hilt mit Firebase in Android

Feb 07 2023
Hilt ist ein Dependency-Injection-Framework für Android, das eine Standardmethode zum Verwalten der Abhängigkeiten in Ihrer Anwendung bietet. Firebase ist eine Backend-as-a-Service (BaaS)-Plattform, die eine Vielzahl von Diensten für Mobil- und Webanwendungen bereitstellt.

Hilt ist ein Dependency-Injection-Framework für Android, das eine Standardmethode zum Verwalten der Abhängigkeiten in Ihrer Anwendung bietet. Firebase ist eine Backend-as-a-Service (BaaS)-Plattform, die eine Vielzahl von Diensten für Mobil- und Webanwendungen bereitstellt. In diesem Blog erfahren Sie, wie Sie Hilt mit Firebase in einer Android-Anwendung implementieren.

Bildrechte der Android-Entwickler

Schritt 1: Fügen Sie Hilt- und Firebase-Abhängigkeiten zu Ihrem Projekt hinzu

Fügen Sie zunächst die Hilt-Abhängigkeit zu Ihrer build.gradle-Datei auf App-Ebene hinzu. Die neueste Version von Hilt zum Zeitpunkt des Schreibens ist 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'

Erstellen Sie eine Anwendungsklasse und kommentieren Sie sie mit @HiltAndroidApp. Diese Klasse dient als Einstiegspunkt für Hilt und wird zum Initialisieren von Hilt-Komponenten in Ihrer Anwendung verwendet.

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

Erstellen Sie ein Hilt-Modul für Firebase, um Abhängigkeiten zu anderen Komponenten in Ihrer Anwendung bereitzustellen. Ein Modul ist eine Klasse, die definiert, wie Abhängigkeiten bereitgestellt werden. Um ein Hilt-Modul zu erstellen, kommentieren Sie die Klasse mit @Moduleund@InstallIn(SingletonComponent::class)

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

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

Um Firebase-Abhängigkeiten in Ihren Komponenten zu verwenden, verwenden Sie die @InjectAnnotation, um die Abhängigkeiten zu deklarieren. Um beispielsweise FirebaseAuth in einer Aktivität zu verwenden, fügen Sie den folgenden Code hinzu

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
  }
}

Aktualisieren Sie Ihr AndroidManifest.

Die vollständige Implementierungsunterstützung für die Abhängigkeitsinjektion mit Firebase zu finden, ist etwas kompliziert, aber in einem anderen Artikel erfahren wir, wie wir sie in den verschiedenen Ebenen implementieren, um eine korrekte und saubere Struktur unseres Projekts aufrechtzuerhalten.