web-dev-qa-db-ja.com

Firebaseは指定された名前で新しい子を追加します

これは私のデータベースです

enter image description here

そのフォーマットを維持したままデータベースに新しいユーザーを追加したいと思います。私はこれを試しました:

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

問題は、新しいユーザーを追加するたびに、前のユーザーが上書きされることです。

16
Aldridge1991

あなたが使用しているために起こります:

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

この方法で、以前の値を削除してurl/Usersの値をプッシュします。

doc を確認してください:

SetValue()を使用すると、子ノードを含む指定された場所のデータが上書きされます。

前のユーザーを削除せずに新しいユーザーを追加するには、次の行を削除します。

//usersRef.setValue(name);

この方法で、他の値を上書きせずにurl/Users/myNameの値をプッシュします。

14

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

setValueの前に「Push」を使用してください。

5
M-Groups

これは私のために働いた。ハッシュの代わりにモデルクラスを使用しています

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