2017-12-19 1 views
1

Ich möchte eindeutige ID-Schlüssel abzurufen diesen Code abrufen eindeutige ID eines jeden Firebase neuen Beitrag in der Abfrage und versucht, aber nicht funktioniert und was falsch idWie in Datenbank

final DatabaseReference newPost = mDatabase.push(); 
final String id = mDatabase.push().getKey(); 


mDatabaseUser.addValueEventListener(new ValueEventListener() { 
    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 

     newPost.child("title").setValue(title_val); 
     newPost.child("id").setValue(id); 

Antwort

1

Das erste, was diese verdächtig aussieht :

final DatabaseReference newPost = mDatabase.push(); 
final String id = mDatabase.push().getKey(); 

Jedes Mal, wenn Sie anrufen push() es erzeugt eine neue Position. Also, wenn Sie den Schlüssel/ID des neuen Postens erfassen möchten, die Sie tun sollten:

final DatabaseReference newPost = mDatabase.push(); 
final String id = newPost.getKey(); 

Ich bin auch nicht ganz sicher, was Ihre Zuhörer zu tun gemeint ist. Wenn Sie einfach die beiden Eigenschaften des neuen Posts festlegen möchten, benötigen Sie keinen Listener. Just do:

final DatabaseReference newPost = mDatabase.push(); 
final String id = newPost.getKey(); 
newPost.child("title").setValue(title_val); 
newPost.child("id").setValue(id); 

Oder besser:

final DatabaseReference newPost = mDatabase.push(); 
final String id = newPost.getKey(); 
Map<String, Object> values = new HashMap<>(); 
values.put("title", title_val); 
values.put("id", id); 
newPost.setValue(values); 
Verwandte Themen