У меня есть администратор, который может создать новую учетную запись для другого пользователя. Я написал этот код. Это действительно сработало в первый раз, потом не сработало. Думаю это из-за user_ID будет то же самое. Если это по этой причине, как я могу создать новую учетную запись, даже если я вошел в систему?
Мой код:
mAuth.createUserWithEmailAndPassword(email,password)
.addOnCompleteListener(
add_accountActivity.this,
new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()){
}else{
String user_id = mAuth.getCurrentUser().getUid();
// add user Id to database
DatabaseReference current_user_db
=FirebaseDatabase.getInstance().getReference()
.child("account").child(user_id);
current_user_db.setValue(true);
}
При создании новой учетной записи этот новый пользователь автоматически входит в систему. Это означает, что существующий текущий пользователь выходит из системы. Это работает по назначению, поскольку SDK Firebase Authentication для Android предназначен только для входа текущего пользователя. Также см. Мой ответ здесь: stackoverflow.com/questions/37517208/… (и обходной путь, при котором делает позволяет создать нового пользователя, не подписывая в конце концов текущего).
Чтобы этого избежать, попробуйте использовать Firebase Admin SDK на сервере (или используйте облачные функции), чтобы сгенерировать столько пользователей, сколько вы хотите, без выхода из системы.
Вы должны выйти из системы текущего пользователя, тогда вы сможете зарегистрировать нового пользователя, так как когда вы зарегистрируетесь, то после успеха вы войдете в систему как пользователь firebase