2017-01-28 2 views
0

Я пишу приложение для Android, которое требует входа в систему для доступа к нашим данным Firebase. В настоящее время я использую метод аутентификации «e-mail &». То, что я хотел бы реализовать, - это быстрая процедура входа в систему, как только пользователь заходил в приложение хотя бы один раз. Если бы я вообще не заботился о безопасности или лучших практиках, способ сделать это - это отвлечь учетные данные пользователя в каком-либо файле, локальном для устройства. Но я делаю.Учитывая простую схему аутентификации по электронной почте/паролю в Firebase, что является наиболее подходящим методом ускоренного входа?

Некоторые поисковые запросы предлагают использовать OAUTH, но если я правильно понимаю, это потребует от пользователя учетной записи с поддержкой службы (Google, Facebook, Twitter, Github). Эта ассоциация не подходит для брендинга этого приложения. Независимый пароль электронной почты подходит лучше.

Итак, что бы вы предложили для внедрения быстрых механизмов входа в систему?

Редактировать: забыл упомянуть, если предлагаемые методы имеют определенное истечение срока действия, то есть плюс.

ответ

0

Вы можете использовать общие предпочтения. Когда пользователь впервые в первый раз сохраняет uId в общих предпочтениях и проверяет каждый раз, когда пользователь приходит к вашему приложению, что uId существует или нет, если нет необходимости делать логин. И при выходе пользователя из приложения очистить все общие предпочтения.

+0

Это будет работать .. . Это не касается моего желания истечения срока действия (см. Мое редактирование), но я полагаю, что могу реализовать это с помощью AlarmManager. – user1733212

0

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

Смотрите этот пример из документации getting the currently signed-in user:

Рекомендуемый способ получить текущего пользователя путем установки слушателя на FirebaseAuth объекта:

FirebaseAuth.getInstance().addAuthStateListener(new FirebaseAuth.AuthStateListener() { 
    @Override 
    public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
     FirebaseUser user = firebaseAuth.getCurrentUser(); 
     if (user != null) { 
      // User is signed in 
      Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid()); 
     } else { 
      // User is signed out 
      Log.d(TAG, "onAuthStateChanged:signed_out"); 
     } 
     // ... 
    } 
}); 
+0

о да. Я видел этот метод. Я отклонил это, потому что в то время я надеялся найти что-то, у которого было истечение, которое я мог бы указать ... все же, это лучший вариант, с которым я столкнулся до сих пор. – user1733212