web-dev-qa-db-fra.com

Firebase ajoute un nouvel enfant avec le nom spécifié

Ceci est ma base de données

 enter image description here

J'aimerais ajouter de nouveaux utilisateurs à la base de données en conservant ce format. J'ai essayé ceci:

   //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);

Le problème est que chaque fois que j'ajoute un nouvel utilisateur, le précédent est écrasé.

16
Aldridge1991

Cela arrive parce que vous utilisez:

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

De cette façon, vous allez pousser la valeur dans url/Users en supprimant la valeur précédente.

Vérifiez le doc :

L'utilisation de setValue () écrasera les données à l'emplacement spécifié, y compris les nœuds enfants.

Pour ajouter un nouvel utilisateur sans supprimer le précédent, supprimez simplement cette ligne:

//usersRef.setValue(name);

De cette façon, vous allez pousser la valeur dans url/Users/myName sans remplacer les autres valeurs.

14

Base de données Firebase 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);

Utilisez simplement "Push" avant setValue.

5
M-Groups

Cela a fonctionné pour moi. J'utilise la classe de modèle au lieu de Hash

mFirebaseDatabase.child(name);
mFirebaseDatabase = mFirebaseDatabase.child(name);
FirebaseDatabase.setValue(name);
FirebaseDatabase.setValue(user);
1
Roshaan Qurban