android - Android在存储库模式中注入带有刀柄的firebase firestore
问题描述
当我尝试在我的存储库的构造函数中添加 firebaseFirestore 时,我的项目出现问题,“错误:找不到符号返回 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
}
解决方案
推荐阅读
- arrays - 如何循环遍历数组为Objective C中的每个项目分配一个变量
- typescript - 行为主体未在 .next(value) 上更新订阅者
- android - 带有一堆卡片的垂直可滑动 ViewPager
- msbuild - 如何在 Visual Studio 2019 解决方案上运行 Sonar Scanner?
- angular - 防止使用 SPACE 键切换 mat-expansion-panel
- javascript - 如何修复此函数以递归搜索对象以查找键的所有实例?
- mysql - MySQL 5.6.26 高并发死锁
- hive - 带有 Hive 的 ORC 文件:java.io.IOException:两个阅读器
- opencv - 如何通过 findContours 函数找到检测到的对象的长度和宽度?
- ios - 更改 xcode 的默认 Apple ID