Ich versuche, eine Chat-Anwendung mit Firebase-Datenbank zu machen, aber ich habe ein paar Probleme.
Dies ist meine Datenbank. Ich möchte den Nachrichten einen Listener hinzufügen, aber nur für die Werte für User->UID->chats->Chat IDs
. Wie kann ich das machen? HierFirebase Database nur bestimmte Kinder hören
Antwort
Sie müssen es zweimal tun: zuerst die Chat-ID-Liste erhalten, basierend auf Benutzer-ID, dann die Nachrichten-Daten für jede dieser Chat-IDs erhalten.
// consider you have you user (FirebaseUser) object ready
FirebaseDatabase.getInstance().getReference("Users/" + user.uid + "/chats")
.addListenerForSingleValueEvent(new ValueEventListener() {
... onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
FirebaseDatabase.getInstance().getReference("Messages/"+snapshot.getKey())
.addListenerForSingleValueEvent(...
... onDataChange(DataSnapshot messageSnapshot) {
// I changed the snapshot name to make it easier to read
// here messageSnapshot.getKey() is message ID
// and messageSnapshot.getValue() will contain data you need (I think)
}
...
);
}
}
...
});
hoffe, das hilft
ist ein Beispiel für den Zugriff auf
final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference reference = database.getReference("Messages").child(read);
was 'read'? –
Ich gab dieses Beispiel basierend auf Ihrem Screenshot, könnte es 'database.getReference (" Nachrichten "). Child();' so können Sie alle Nachrichten in Ihrer Datenbank anzeigen –
Aber wird es nicht die Nachrichten aller Räume ? Ich dachte, dass es keine gute Möglichkeit ist, das zu tun, denn wenn ich eine Nachricht sende, wird jeder Benutzer diese Nachricht erhalten. –
- 1. Erhalten Sie nur bestimmte Menge an Kinder von Firebase Datenbank
- 2. hat nur Kinder .WRITE Regel [Firebase]
- 3. Wie bestimmte Knoten in Firebase Realtime Database abgerufen werden?
- 4. Firebase Database Design Empfehlung
- 5. Firebase Database Batching
- 6. Firebase Database Android
- 7. Firebase Realtime Database addValueEventListener
- 8. Firebase Database Count
- 9. Firebase Android - schreiben Database
- 10. Firebase: Neu hinzugefügte Kinder
- 11. Firebase-Datenkappe für Kinder
- 12. Firebase Realtime Database - Daten abrufen
- 13. Firebase Realtime Database Persistenzklärung erforderlich
- 14. Firebase-Kinder zu RecyclerView
- 15. Firebase JavaScript Kinder Vergleich
- 16. Firebase Anzahl Kinder
- 17. Firebase erlaubt nur bestimmte Eigenschaften zu setzen
- 18. Problem mit Firebase Realtime Database
- 19. Sende imageURL an Firebase Database
- 20. Firebase Realtime Database: Ist es sicher, in der gleichen Zeit massive Wert-Ereignisse zu hören?
- 21. Paginieren chronologisch Kinder priorisiert Firebase
- 22. Wie man Firebase Database Query erstellt, um einige der Kinder mit Swift 3 zu bekommen?
- 23. Wie bestimmte Kinder gelöscht werden?
- 24. jQuery Kinder nur auswählen, wenn Container keine bestimmte Klasse haben
- 25. Verringern des Variablenwerts aller Kinder Firebase
- 26. Abrufen von Kinder Wert -firebase-
- 27. Firebase Android Count Kinder/Abzeichen
- 28. Firebase Datenbank Anzahl der Kinder
- 29. Firebase Xamarin foreach Snapshot Kinder
- 30. Firebase: Suchen von Kinder Wert
Danke, es funktioniert :) –