Firebase添加具有指定名称

时间:2016-05-04 14:50:07

标签: android firebase firebase-realtime-database

这是我的数据库

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

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

3 个答案:

答案 0 :(得分:15)

这是因为您正在使用:

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

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

检查doc

  

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

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

//usersRef.setValue(name);

通过这种方式,您可以在url/Users/myName中推送值,而不会覆盖其他值。

答案 1 :(得分:5)

Firebase Database Push

constant

只需使用&#34; PUSH&#34;在const之前。

答案 2 :(得分:1)

这对我有用。我使用的是模型类而不是Hash

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