Чтобы получить спецификацию c url для любого модуля, вам необходимо определить аннотацию для метода провайдера.
Пример
@Provides
@Room
fun provideRoomWordDataSource(): WordDataSource {
return RoomWordDataSource()
}
@Provides
@Firestore
fun provideFirestoreWordDataSource(): WordDataSource {
return FirestoreWordDataSource()
}
@Singleton
class WordRepository
@Inject constructor(
@Room private val room: WordDataSource,
@Firestore private val firestore: WordDataSource
) : Repository<String, Word>(rx, rm), WordDataSource {
}
Первые два провайдера метод имеет определение WordDataSource экземпляра двух разностных классов и определение с двумя разными аннотациями @ Room и @Firestore.
Чтобы получить два разных WordDataSource в WordRepository , только что использованных @ Room и @ Firestore аннотация в конструкторе .
Наслаждайтесь мощью аннотаций в Dagger. :) Пожалуйста, не стесняйтесь, если вам нужна более подробная информация от меня.