Salir correctamente de un usuario de la aplicación Android
Estoy desarrollando una pequeña aplicación Android, y básicamente hasta ahora sólo tiene la funcionalidad de inicio de sesión y cierre de sesión. Estoy utilizando Firebase para almacenar datos de usuario y también para la autenticación.
Así que tengo inicio de sesión de trabajo y autentica a los usuarios como debería y tengo salir de trabajo en el sentido de que no unauthenticates
usuarios. Pero hay algo que tengo que hacer desde dentro de la aplicación para matar la sesión?
- En la API de Firebase 9.0.0, ¿cómo comprobar que el usuario tiene una sesión Auth válida o no?
- Firebase setDisplayName del usuario al crear el usuario Android
- El método SetProviders está marcado como desaconsejado
- No se encontró el archivo de clase de com.google.android.gms.internal.zzaja
- Error: No se pudo resolver: com.google.firebase: firebase-core: 11.0.0
if (id == R.id.action_log_out) { ref.unauth(); //End user session startActivity(new Intent(MainActivity.this, LoginActivity.class)); //Go back to home page finish(); }
¿Funcionará esto como creo que debería hacerlo? Obviamente, si alguien se desconecta, no debería ser capaz de pulsar el botón atrás y volver mágicamente a la última página sin volver a iniciar sesión.
- Uid de firewall y firebase uid no coinciden después de actualizar firebase a 9.2.0
- Firebase en Android: ¿Cómo comprobar la razón Firebase auth falló?
- Android con el cambio de hora de la fecha, pero poner a tiempo de nuevo, Firebase acaba de devolver símbolo expirado
- Vaciar el campo de correo electrónico de Firebase Auth Usuario que utiliza Integración de inicio de sesión de Facebook (Firebase 3.0)
- Firebase sobrescribe Signin con la cuenta de Google
- Cambiar contraseña con Firebase para Android
- "GoogleApiClient no está conectado todavía" al cerrar la sesión cuando se utiliza la autorización de Firebase con google inicie sesión
- ¿Cómo puedo deshabilitar las cuentas de usuario de un proyecto de firebase desde el código?
Cuando Firebase autentica al usuario (o autentifica al usuario con Firebase), almacena el token para ese usuario en el almacenamiento local del dispositivo. Esto sucede cuando llama a uno de los métodos authWith...
(por supuesto sólo si autentifica correctamente al usuario).
Llamando ref.unauth();
Elimina inmediatamente ese token del almacenamiento local.
Un flujo correctamente implementado no volvería a autenticar automáticamente cuando el usuario presione el botón de retroceso, pero eso depende del flujo que implemente (que falta de su pregunta y probablemente sería demasiado código de todos modos).
De los documentos de Firebase
https://firebase.google.com/docs/auth/android/custom-auth
Llame a esto FirebaseAuth.getInstance (). SignOut ();
Eliminar tokens e ID de instancia
String authorizedEntity = PROJECT_ID; String scope = "GCM"; FirebaseInstanceID.getInstance(context).deleteToken(authorizedEntity,scope);
También puede eliminar el ID de instancia en sí, incluidos todos los testigos asociados. La próxima vez que llame a getInstance () obtendrá un nuevo ID de instancia:
FirebaseInstanceID.getInstance(context).deleteInstanceID(); String newIID = InstanceID.getInstance(context).getId();
Veo 2 opciones para el problema que tenemos con el Back-Button después de Logout:
En su LoginActivity, que debe ser su actividad de lanzamiento, sobrescriba el método onBackPressed y lo deje vacío:
@Override public void onBackPressed() { // empty so nothing happens }
O / y puede agregar el LoginActivityIntent en su LogoutActivty si user == null. De esta manera, siempre que un usuario no autenticado aterrice en la actividad, se redireccionará a la LoginActivity instantáneamente, aunque esto parece un poco raro.
mAuth = FirebaseAuth.getInstance(); mAuthListener = 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"); startActivity(new Intent(LogoutActivity.this, LoginActivity.class)); } // ... } };
La primera opción es más fácil, pero supongo que si aplica tanto su lado de ahorro ^ ^ Im codificación de 2 semanas ahora, así que me corrija si estoy equivocado.
- Cómo escribir consecutivos Característica rápida y estable para BLE en Android?
- Cómo incrustar y reproducir un video de YouTube en android