Zum Beispiel habe ich eine Liste von Problemen. Jede Ausgabe hat Besitzer uid. Durch diese UID sollte ich benötigte Benutzer finden und seinen Namen und Foto anzeigen. Ich mache es mit Hilfe Architektur Komponente Ansichtsmodell:Firebase Datenbank Abfrage Benutzer in einer Schleife
issues.forEach {
IssueRepository().getIssueOwner(it.owner).observe(this, Observer {
})
}
getIssueOwner Methode:
fun getIssueOwner(uid: String): MutableLiveData<UserEntity> {
val user: MutableLiveData<UserEntity> = MutableLiveData()
val usersReference = FirebaseDatabase.getInstance().reference.child("users")
val query = usersReference.orderByKey().equalTo(uid).limitToFirst(1)
query.addValueEventListener(object : ValueEventListener {
override fun onCancelled(p0: DatabaseError?) {
}
override fun onDataChange(dataSnapshot: DataSnapshot?) {
if (dataSnapshot == null) {
return
}
dataSnapshot.children.forEach {
val name = it.child("displayName").value
user.postValue(UserEntity(name))
}
}
})
return user
}
Aber ich bin sicher, dass dieser Ansatz nicht korrekt ist. Könntest du mir bitte einen Rat geben, wie ich die Architektur meiner App aufbauen soll?
Dank al ot, vielleicht kennst du einen guten Weg, wie man JOIN query in Android ausführt, bitte hilf mir) – LeShChEnKoUa