Firebase добавляет новый ребенок с указанным именем
Это моя база данных
![введите описание изображения здесь]()
Я хотел бы добавить новых пользователей в базу данных, поддерживая этот формат. Я пробовал это:
//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);
Проблема заключается в том, что всякий раз, когда я добавляю нового пользователя, предыдущий перезаписывается. Большое спасибо.
Ответы
Ответ 1
Это происходит потому, что вы используете:
Firebase usersRef = ref.child("Users");
usersRef.setValue(name);
Таким образом вы вытащите значение в url/Users
, удалив предыдущее значение.
Проверьте doc:
Использование setValue() перезапишет данные в указанном месте, включая любые дочерние узлы.
Чтобы добавить нового пользователя, не удаляя предыдущий, просто удалите эту строку:
//usersRef.setValue(name);
Таким образом вы вытащите значение в url/Users/myName
без переопределения других значений.
Ответ 2
Пожар базы данных 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);
Просто используйте "PUSH" перед setValue
.
Ответ 3
Это сработало для меня. Я использую класс модели вместо Hash
mFirebaseDatabase.child(name);
mFirebaseDatabase = mFirebaseDatabase.child(name);
FirebaseDatabase.setValue(name);
FirebaseDatabase.setValue(user);