Аутентификация Firebase Android с использованием createUserWithEmailAndPassword - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь добавить нового пользователя в Firebase через Android и получаю сообщение об ошибке, которое не имеет смысла для меня. У меня включена электронная почта / пароль для входа в консоль Firebase. Я получаю сообщение об ошибке:

com.example.myproject D / RegisterActivity: validateForm: LoginActivity validateForm запущен. com.example.myproject I / BiChannelGoogleApi: [FirebaseAuth:] getGoogleApiForMethod () вернул Gms: com.google.firebase.auth.api.internal.zzao@xyz123

com.example.myproject W / FirebaseMethods: createUser: fail com.google.firebase.FirebaseException: произошла внутренняя ошибка. [7:]

Моя кодовая база выглядит следующим образом:

public class FirebaseMethods {

private static final String TAG = "FirebaseMethods";

// declare Firebase auth
private FirebaseAuth mAuth;
private String user;

private Context mContext;

public FirebaseMethods(Context context){
    mAuth = FirebaseAuth.getInstance();
    mContext = context;

    if(mAuth.getCurrentUser() != null){
        user = mAuth.getCurrentUser().getUid();
    }
}

/**
 * Register a new username and email to Firebase authentication
 * @param email
 * @param password
 * @param username
 */
public void registerNewEmail(String email, String password, String username){
    mAuth.createUserWithEmailAndPassword(email, password)
            .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        // Sign in success, update UI with the signed-in user's information
                        Log.d(TAG, "createUserWithEmail:success");
                        FirebaseUser user = mAuth.getCurrentUser();
                        updateUI(user);

                    } else {
                        // If sign in fails, display a message to the user.
                        Log.w(TAG, "createUserWithEmail:failure", task.getException());
                        Toast.makeText(mContext, "Authentication failed.", Toast.LENGTH_SHORT).show();
                        updateUI(null);
                    }
                }
            });
}

private void updateUI(FirebaseUser user) {
    Log.d(TAG, "updateUI: LoginActivity updateUI started.");
    if (user != null) {
        /*If the user is already logged in then navigate back to the MainActivity.*/
        Intent intent = new Intent(mContext, MainActivity.class);
        mContext.startActivity(intent);


    } else {
        //add alternative action here
    }
}

enter image description here

1 Ответ

2 голосов
/ 02 октября 2019

Этого недостаточно, просто включив регистрацию по электронной почте / паролю в консоли Firebase.

Вы должны сделать следующее.

  1. Перейти к «инструментам» в Android Studio:

  2. Выберите Firebase: в правой части окна появится приглашение.

  3. Выберите Аутентификация-> Аутентификация электронной почты и пароля.

  4. Подключиться к пожарной базе.

  5. Откроется диалоговое окно. -> Выберите существующий проект, к которому вы хотите подключить свое приложение. В случае, если вы не вошли в Firebase с Android Studio. Затем войдите в систему с тем адресом электронной почты, в котором вы включили аутентификацию по электронной почте / паролю.

  6. После этого нажмите «ДОБАВИТЬ АУТЕНТИФИКАЦИЮ БАЗЫ В ФАЙЛ» и снова появится диалоговое окно. Затем нажмите «ПРИНЯТЬ ИЗМЕНЕНИЯ». Он автоматически добавит некоторые зависимости и файл google-services.json в ваш проект.

  7. Вы закончили настройку в Android Studio.

ПРИМЕЧАНИЕ. Добавьте свой адрес электронной почты надлежащим образом при создании пользователя. то есть: 'xyz@gmail.com'. Иногда он показывает ошибку из-за не «правильно сформированного» адреса электронной почты.

Теперь создайте метод SignIn в этом проекте и попробуйте войти снова. Это обязательно сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...