【发布时间】:2026-01-12 17:35:02
【问题描述】:
所以我正在使用 Firebase 后端构建一个聊天应用程序。在实现 ViewModel 和实际片段之前,我想检查我的 Firebase 存储库是否工作。我获取用户的电话将是这样的
Fragmet -> ViewModel -> Repository -> FirebaseRepository -> 暂停乐趣 getAllUsers() : ArrayList
代码是:
class Repository(val firebaseRepository : FirebaseRepository) {
suspend fun getAllUsersFromFirebase() : ArrayList<UserInfo> {
return firebaseRepository.getAllUsers()
}
}
class FirebaseRepository() {
private val TAG = "FIREBASE REPOSITORY : "
private val firebaseAuth:FirebaseAuth = FirebaseAuth.getInstance()
private val firebaseDatabase :FirebaseDatabase = FirebaseDatabase.getInstance()
suspend fun getAllUsers() : ArrayList<UserInfo> {
val ref = firebaseDatabase.getReference("/users")
val userList = ArrayList<UserInfo>()
ref.addListenerForSingleValueEvent(object : ValueEventListener{
override fun onDataChange(snapshot: DataSnapshot) {
if(snapshot.exists()) {
Log.d(TAG,"$snapshot")
val tempList = ArrayList<UserInfo>()
for(child in snapshot.children){
val temp = child.getValue(UserInfo::class.java)
if(!temp?.userId!!.equals(firebaseAuth.currentUser!!.uid)) {
tempList.add(temp)
}
}
}
}
override fun onCancelled(error: DatabaseError) {
Log.d(TAG,"$error ${error.message}")
}
})
if(userList.isEmpty()) {
userList.add(UserInfo("NO USER FOUND","NO USER FOUND","NO USER FOUND","NO USER FOUND"))
}
return userList
}
}
那么我该如何测试呢?我推测 firebaseAuth 可能会造成问题。我想我可以处理它,但我该如何测试这个 firebase 调用?
【问题讨论】:
标签: android firebase unit-testing kotlin firebase-realtime-database