package Ġcom . c ark z is . android . sil en us . di Ċ Ċ import Ġcom . c ark z is . android . sil en us . data .* Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . firestore . Firebase Fire store Ċ import Ġcom . google . firebase . k tx . Firebase Ċ import Ġdagger . Module Ċ import Ġdagger . Provides Ċ import Ġdagger . h ilt . Install In Ċ import Ġdagger . h ilt . components . Singleton Component Ċ import Ġjavax . inject . Qualifier Ċ import Ġjavax . inject . Singleton Ċ Ċ /** Ċ Ġ* ĠThis Ġis Ġfor Ġproviding Ġthe ĠRepository Ġand ĠFirebase Ġobjects Ġfor ĠH ilt Ġdependency Ġinjection s . Ċ Ġ*/ Ċ @ Install In ( Singleton Component :: class ) Ċ @ Module Ċ object ĠFirebase Module Ġ{ ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovides Fire store () Ġ= ĠFirebase Fire store . getInstance () ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovides Firebase Auth () Ġ= ĠFirebase Auth . getInstance () ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide UserRepository ( firestore : ĠFirebase Fire store , Ġfirebase Auth : ĠFirebase Auth ) Ġ: ĠUser Repository Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUser Repository Impl ( firestore , Ġfirebase Auth ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Singleton ĊĠĠĠ Ġ@ Provides ĊĠĠĠ Ġfun Ġprovide Main Repository ( firestore : ĠFirebase Fire store , Ġfirebase Auth : ĠFirebase Auth ) Ġ: ĠMain Repository Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠMain Repository Impl ( firestore , Ġfirebase Auth ) ĊĠĠĠ Ġ} Ċ Ċ }