Firebase 添加具有指定名称的新子项

Firebase add new child with specified name

这是我的数据库

我想将新用户添加到保持该格式的数据库中。我试过这个:

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

问题是每当我添加新用户时,以前的用户都会被覆盖。

发生这种情况是因为您正在使用:

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

通过这种方式,您将推入 url/Users 中的值,删除之前的值。

勾选 doc:

Using setValue() will overwrite the data at the specified location, including any child nodes.

要在不删除前一个用户的情况下添加新用户,只需删除此行:

//usersRef.setValue(name);

通过这种方式,您将在不覆盖其他值的情况下推送 url/Users/myName 中的值。

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"。

这对我有用。我正在使用模型 class 而不是 Hash

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