Firebase номер телефона войти после регистрации - PullRequest
0 голосов
/ 30 мая 2018

Я работаю над проектом, выполненным в Android Studio с использованием Java, и у меня возникли некоторые проблемы с выяснением, как я могу сохранить учетные данные для последующего использования, даже если приложение перезапускается.

Сохранениенекоторые значения для последующего использования могут быть достигнуты с помощью SharedPreffeferences, но, к сожалению, у него нет возможности поместить объект только в строку, логическое, целое число, число с плавающей точкой, long и stringset.

Переменная учетных данных происходит из функции

public void onVerificationCompleted(PhoneAuthCredential credential) 
{ 
  mAuth.signInWithCredential(credential) // where mAuth is FirebaseAuth
}

Этот процесс выполняется, когда пользователь сначала регистрируется со своим номером телефона и получает код подтверждения.
Так или иначе, я нашел обходной путь для этой ситуации, когда я хочу, чтобы пользовательвойти в некоторые действия, но это требует электронной почты и пароля, и я хотел бы просто сохранить только номер телефона, не требуя регистрации другого типа, используя электронную почту и пароль.

Код для входа по электронной почте и пароль отлично работает

    FirebaseAuth.getInstance().signInWithEmailAndPassword(
            your_email, your_password).addOnCompleteListener(new OnCompleteListener<AuthResult>(){
        @Override
        public void onComplete(Task<AuthResult> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "firebase auth success");
                requestLocationUpdates();
            } else {
                Log.d(TAG, "firebase auth failed");
                Log.e(TAG, "onComplete: Failed=" + task.getException().getMessage());
            }
        }
    });

Ответы [ 2 ]

0 голосов
/ 30 мая 2018

Есть много способов сохранить объект в SharedPreffeferences, но, на мой взгляд, это лучший подход.

Вы конвертируете данные объекта в формат JSON, после чего вы можете сохранить данные JSON какстрока в SharedPreffeferences.Пример:

String tripPlan = new Gson().toJson(childData);

Примечание: childData является объектом класса.

0 голосов
/ 30 мая 2018

Исследуйте сериализацию - посмотрите, можете ли вы сериализовать PhoneAuthCredential, и тогда вы сможете сохранить его в виде строки JSON.

Используемая вами библиотека Java - это библиотека gson от Google: Библиотека сериализации / десериализации Java для преобразования объектов Java в JSON и обратно

Примечание: не все объекты могутлегко сериализовать с помощью gson, в некоторых случаях вам может потребоваться создать собственный сериализатор gson.

...