在此过程中未初始化默认的FirebaseApp..请确保首先调用FirebaseApp.initializeApp(Co



我正在尝试向firestore添加数据。而且我想用dagger来完成这件事。但我总是犯这个错误。你能帮我吗。。。。。。

**默认FirebaseApp未在此进程中初始化com.example.vvv。请确保首先调用FirebaseApp.initializeApp(Context(。**

FirestoreR假设

class FirestoreRepository @Inject constructor(private val usersRef: 
CollectionReference) {
fun saveSearchResults(userEntities: List<UserEntity>) {
usersRef.add(userEntities).addOnCompleteListener { task ->
when (task.isSuccessful) {
true ->  Log.d(ContentValues.TAG, "added:success")
false ->  Log.d(ContentValues.TAG, "added:unsuccess")
}
}
}
}

ViewModel

@HiltViewModel
class UserListViewModel @Inject constructor(private val repository: RoomRepository, private 
val firestoreRepository: FirestoreRepository) :
ViewModel() {
private val _users = MutableLiveData<List<User>>()
val users: LiveData<List<User>>
get() = _users
var userData: MutableLiveData<List<User>> = MutableLiveData()
fun userSearch(term: String) {
viewModelScope.launch {
loadFromCache(term)
val getPropertiesDeferred = 
GithubApi.retrofitService.searchUser(term)
try {
val userEntities: MutableList<UserEntity> = mutableListOf()
val result = getPropertiesDeferred.body()
_users.value = result?.users
result?.users?.forEach {
userEntities.add(
UserEntity(
term = term,
login = it.login,
avatar_url = it.avatar_url
)
)
}
clearSearchResults(term)
updateSearchResults(userEntities, term)
firestoreRepository.saveSearchResults(userEntities) //save 
data with firebase
} catch (e: Exception) {
Log.e("userListErr", e.message.toString())
}
}
}
private fun updateSearchResults(userEntities: List<UserEntity>, term: 
String) {
viewModelScope.launch(Dispatchers.IO) {
repository.insertSearchResults(userEntities)
loadFromCache(term)
}
}
private fun loadFromCache(term: String) {
viewModelScope.launch(Dispatchers.IO) {
val list = repository.getSearchResults(term)
userData.postValue(list)
}
}
private fun clearSearchResults(term: String) {
viewModelScope.launch(Dispatchers.IO) {
repository.deleteSearchResults(term)
}
}
}

AppModule

@Module
@InstallIn(SingletonComponent::class)
object APPModule {
@Singleton
@Provides
fun getAppDB(context: Application): AppDatabase {
return AppDatabase.getAppDB(context)
}
@Singleton
@Provides
fun getDao(appDB: AppDatabase): AppDao {
return appDB.getDAO()
}
@Provides
fun provideFirebaseFirestore() = FirebaseFirestore.getInstance()
@Provides
fun provideUsersRef(db: FirebaseFirestore) = db.collection("users")
}
  1. 在build.gradle(项目(的依赖项中添加以下内容:

    classpath 'com.google.gms:google-services:4.3.5'
    
  2. 在build.gradle(模块(中添加以下内容:

    plugins {
    id 'com.google.gms.google-services'
    }
    
  3. 在最后一行代码中添加以下内容:

    apply plugin: 'com.google.gms.google-services'
    

我在这个项目中使用了多模块。idcom.google.gms.google-services到应用程序目录并解决。

我遇到了这个问题,因为谷歌服务sdk版本不适用于gradle版本。

也许你可以试试这个方向。

最初的项目build.gradle配置是可以的。

buildscript {
dependencies {
classpath "com.android.tools.build:gradle:3.2.1"
classpath 'com.google.gms:google-services:4.1.0'

最后,通过查找兼容的SDK版本来解决问题。

buildscript {
dependencies {
classpath "com.android.tools.build:gradle:3.3.3"
classpath 'com.google.gms:google-services:4.2.0'

相关内容

最新更新