尝试在我的存储库的构造函数中添加 firebaseFirestore 时,我的项目出现问题,“错误:找不到符号 return DaggerBraziliexApplication_HiltComponents_SingletonC.builder()"
因此我无法构建项目,在这种情况下我应该如何进行注入?
界面
interface NewsRepository {
suspend fun fetchNewsFromApi(
query: String,
date: String,
apiKey: String
): Flow<Result<List<NewsModelView>>>
}
RepositoryImpl
class NewsRepositoryImpl @Inject constructor(
private val apiService: NewsService,
private val newsMapper: NewsMapper,
private val firestore: FirebaseFirestore
): NewsRepository {
override suspend fun fetchNewsFromApi(
query: String,
date: String,
apiKey: String
): Flow<Result<List<NewsModelView>>> {
//TODO Implement API Request
}
private fun saveDataInFirestore(modelView: List<NewsModelView>, date: String) {
//TODO use firebaseFirestore do save response
}
}
刀柄模块:
@Module
@InstallIn(SingletonComponent::class)
object NetworkModule {
private const val baseUrl = "https://newsapi.org/v2/"
@Provides
@Singleton
@Named("news_api")
fun provideRetrofit(): Retrofit{
return Retrofit.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
@Provides
@Singleton
fun provideNewsService(@Named("news_api") retrofit: Retrofit): NewsService{
return retrofit.create(NewsService::class.java)
}
@Provides
@Singleton
fun provideFirestore() = FirebaseFirestore.getInstance()
}
@Module
@InstallIn(ViewModelComponent::class)
abstract class RemoteModule {
@Binds
@ViewModelScoped
abstract fun bindRemoteRepository(remoteRepository: NewsRepositoryImpl): NewsRepository
}