Während der Authentifizierung wird der Benutzer mit E-Mail und Benutzername erstellt. Jetzt versuche ich, diesen Benutzer mit neuen Feldern wie Vorname, Nachname, Adresse usw. zur Registrierungszeit zu aktualisieren. Aber wenn ich versuche, ein neues Feld einzufügen, wird es mit den neuen Feldern aktualisiert und die alten Felder werden entfernt.Wie update Kind mit neuen Feldern in Firebase Realtime-Datenbank?
public class User {
String uid,userName,firstName,lastName,email;
public User() {
}
//called on the time of auth
public User(String email, String userName) {
this.email = email;
this.userName = userName;
}
//called on registration process
public User(String firstName, String lastName,String mobileNo) {
this.firstName = firstName;
this.lastName = lastName;
this.mobileNo = mobileNo;
}
@Exclude
public Map<String, Object> toMap() {
HashMap<String, Object> result = new HashMap<>();
result.put("email", email);
result.put("userName", userName);
result.put("firstName", firstName);
result.put("lastName", lastName);
return result;
}
Die folgenden Methoden, um die Feuerbasis Datenbank hinzuzufügen und zu aktualisieren verwendet. Die addUser-Methode funktioniert ordnungsgemäß, ersetzt jedoch während der Aktualisierungsmethode die alten Daten.
String userId = getUid(); // its retrun firebase current user id as I use
// auth authentication
//first time entry in database
private void writeNewUser(String name, String email) {
User user = new User(name, email);
Map<String, Object> postValues = user.toMap();
mDatabase.child("users").child(userId).setValue(postValues);
}
//Its called during the registration porecess
private void updateUser() {
User user = new User(firstName, lastName, email);
Map<String, Object> postValues = user.toMap();
mDatabase.child("users").child(userId).updateChildren(postValues);
}
können Sie den Code anzeigen, in dem Sie die Datenbank aktualisieren? – faruk
@faruk pls überprüfen Sie die Updates –