Вы должны аутентифицировать пользователя перед получением его экземпляра.
Чтобы убедиться, что пользователь вошел в систему, прежде чем что-либо делать, вызовите метод getCurrentUser()
в createUserWithEmailAndPassword()
(если вы используете аутентификацию по электронной почте и паролю).
Прежде всего создайте и инициализируйте объект Firebase Auth:
FirebaseAuth mAuth = FirebaseAuth.getInstance();
Затем, когда вы захотите зарегистрировать (предполагается с кнопкой), вызовите createUserWithEmailAndPassword()
метод :
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
//Successfully created user
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String uid = user.getUid();
FirebaseDatabase database = FirebaseDatabase.getInstance();
final DatabaseReference mRef = database.getReference("users");
EditText emailField = findViewById(R.id.email);
//Get email from EditText
final String email = emailField.getText().toString();
mRef.child("role").setValue("Trainer");
} else {
//User not created,
//Print exception
Log.e("Sign up", task.getException().getMessage())
//Write your code to handle user creation fail
}
}
});
Если вы хотите узнать больше об Аутентификации Firebase, посмотрите здесь
Помните, что это решение предназначено только для создания пользователей.
Надеюсь, это поможет! Напишите комментарий к дополнительному объяснению или если у вас есть другой вопрос!