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

Ald*_*991 16 android firebase firebase-realtime-database

这是我的数据库

在此输入图像描述

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

   //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);
Run Code Online (Sandbox Code Playgroud)

问题是每当我添加一个新用户时,前一个用户都会被覆盖.

Gab*_*tti 15

这是因为您正在使用:

Firebase usersRef = ref.child("Users");
usersRef.setValue(name);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您将推送值以url/Users删除先前的值.

检查文档:

使用setValue()将覆盖指定位置的数据,包括任何子节点.

要添加新用户而不删除上一个用户,只需删除此行:

//usersRef.setValue(name);
Run Code Online (Sandbox Code Playgroud)

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


小智 5

Firebase数据库推送

[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);
Run Code Online (Sandbox Code Playgroud)

以前只使用"PUSH" setValue.