2016-05-04 1 views
14

Diese meine Datenbank istFirebase neues Kind hinzufügen mit dem angegebenen Namen

enter image description here

Ich mag würde neue Benutzer-Datenbank hinzuzufügen dieses Format zu halten. Ich habe dies versucht:

//Store data in database 
    Firebase usersRef = ref.child("Users"); 
    Map<String, String> userData = new HashMap<String, String>(); 

    userData.put("Nombre", name); 
    userData.put("Password", pass); 
    userData.put("Confirmed", "FALSE"); 
    userData.put("Email", mail); 

    usersRef.setValue(name); 
    usersRef = ref.child("Users").child(name); 
    usersRef.setValue(userData); 

Das Problem ist, wenn ich einen neuen Benutzer hinzuzufügen, ist die vorherige überschrieben.

+0

kann ich das vollständige Beispiel für die Datenbank so machen? –

Antwort

11

Es geschieht, weil Sie verwenden:

Firebase usersRef = ref.child("Users"); 
usersRef.setValue(name); 

Auf diese Weise können Sie den Wert in url/Users Entfernen des vorherigen Wert drückt.

Überprüfen Sie die doc:

Mit setValue() werden die Daten an der angegebenen Stelle, einschließlich aller untergeordneten Knoten überschreiben.

Um einen neuen Benutzer hinzuzufügen, ohne die vorherige Entfernung, nur diese Zeile entfernen:

//usersRef.setValue(name); 

Auf diese Weise können Sie ohne zwingende andere Werte den Wert in url/Users/myName drückt.

+1

Danke. Was soll ich dann verwenden? – Aldridge1991

+0

@ Aldridge1991 Die Antwort aktualisiert –

4

Firebase Database Push

[FirebaseDatabase mydb =][2] FirebaseDatabase.getInstance(); 
DatabaseReference mDatabase = mydb.getReference().child("Dealers").child(dealerId).child("Stock").child(stockAddDate); 

Map<String, String> userData = new HashMap<String, String>(); 

userData.put("Product_Name", productName); 
userData.put("Holding_Stock", holdingStock); 
userData.put("Primary_Stock", primaryStock); 
mDatabase.push().setValue(userData); 

Verwenden Sie einfach "PUSH" vor setValue.

+1

Was ist -klaxOUQNJjWf0OaF-77, und wie diese Werte zu vermeiden? –

+0

-klaxOUQNJjWf0OaF-77 ist Push ID wie in Mysql ID ... –

1

Das funktionierte für mich. Ich verwende Modellklasse anstelle von Hash

mFirebaseDatabase.child(name); 
mFirebaseDatabase = mFirebaseDatabase.child(name); 
FirebaseDatabase.setValue(name); 
FirebaseDatabase.setValue(user);