Вы не должны добавлять электронную почту в качестве родительского узла, иначе вы получите ошибку.
Сначала вы добавляете данные дважды, потому что у вас это под onCreate()
, оно должно быть под кнопкойили любое событие, которое может произойти.
Во-вторых, вы генерируете случайный идентификатор, используя push()
, поэтому каждый раз, когда вызывается onCreate()
, будут добавляться новые данные, поскольку push()
используется для разделения записей.
Чтобы предотвратить эту проблему, добавьте создание пользователя под кнопкой (например, под кнопкой «Зарегистрироваться»).
Если вы хотите оставить его под onCreate()
, выполните следующие действия:
mDatabase = FirebaseDatabase.getInstance().getReference("User");
FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser();
String userId=user.getUid();
Biodata bio = new Biodata("MyUser", "MyUser@email.com");
mDatabase.child(userId).setValue(bio);
Вышеописанное будет работать, если вы используете аутентификацию с помощью firebase, а также после входа в систему пользователя.getUid()
будет извлекать идентификатор пользователя из аутентификации firebase, которая является уникальной для каждого пользователя.Тогда вы сможете добавить его в базу данных.