android - Dagger 2 Qualifier 在 Android 模块上的 Kotlin 中不起作用
问题描述
我正在尝试使用 Dagger2 提供 2 个 Firebase CollectionReference 对象
@Provides
@Singleton
@FirebaseSongsDatabaseReferenceNamed
internal fun provideUserSongsDatabaseSnapshotRef(dbRef: FirebaseFirestore): CollectionReference =
dbRef.collection("users-songs")
@Provides
@Singleton
@FirebaseUserListDatabaseReferenceNamed
internal fun provideUsersListDatabaseRef(dbRef: FirebaseFirestore): CollectionReference =
dbRef.collection("users-list")
@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.SOURCE)
annotation class FirebaseSongsDatabaseReferenceNamed(val value: String = "songs-by-user-data-reference")
@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.SOURCE)
annotation class FirebaseUserListDatabaseReferenceNamed(val value: String = "users-list-reference")
但是当我编译时,Dagger 因重复绑定错误而失败。
[Dagger/DuplicateBindings] com.google.firebase.firestore.CollectionReference is bound multiple times:
@Provides @Singleton @org.jetbrains.annotations.NotNull com.google.firebase.firestore.CollectionReference network.NetworkModule.provideUserSongsDatabaseSnapshotRef$network_debug(com.google.firebase.firestore.FirebaseFirestore)
@Provides @Singleton @org.jetbrains.annotations.NotNull com.google.firebase.firestore.CollectionReference network.NetworkModule.provideUsersListDatabaseRef$network_debug(com.google.firebase.firestore.FirebaseFirestore)
我的应用程序分为几个模块。我尝试在主模块中添加类似的代码,但那里没有出现错误。它只发生在子模块中。这是来自主模块的工作代码。
@Provides
@FirebaseLoginIntentNamed
fun provideFirebaseUILoginIntent(): Intent = AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(firebaseLoginProviders)
.build()
@Provides
@TestNamed
fun provideTestIntent(str: String): Intent = Intent(str)
@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.SOURCE)
annotation class FirebaseLoginIntentNamed(val value: String = "firebase-login-intent")
@Qualifier
@MustBeDocumented
@Retention(AnnotationRetention.SOURCE)
annotation class TestNamed(val value: String = "intent-test")
解决方案
推荐阅读
- python - Python Groupby 转换多个参数
- camera-calibration - 计算透视投影中两个矩形之间的角度
- java - Hibernate @email 不关心域或 FQDN
- java - 在 java 中读取、加载和卸载非常大的二进制文件的内存部分的有效方法。
- reactjs - react-intl FormattedMessage 注册 reduxForm 后未更新
- reactjs - 如何解决或忽略 Redux 连接组件中的 React Strict Mode 警告?
- java - Java - why would one use the state design pattern over saving the state in a variable?
- javascript - Codepen.io 中的 ReactJS 和 Bootstrap 遇到问题
- spring - 如何在不显示在 URL 中的情况下跟踪某些用户数据
- python - Numpy:切片后的垃圾收集