El método SetProviders está marcado como desaconsejado

Estoy desarrollando la aplicación Android de Firebase después del tutorial de Udacity.

El método setProviders está marcado como desaprobado por IDE, después de pasar por la documentación no pude encontrar la solución. ¿Hay alguna forma de solucionar el problema? Aquí está el código:

mMessagesDatabaseReference.addChildEventListener(mChildEventListener); mAuthStateListener = new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser user = firebaseAuth.getCurrentUser(); if (user != null){ Toast.makeText(MainActivity.this,"You are signed in, Welcome", Toast.LENGTH_SHORT).show(); }else{ startActivityForResult( AuthUI.getInstance() .createSignInIntentBuilder() .setIsSmartLockEnabled(false) .setProviders( AuthUI.EMAIL_PROVIDER, AuthUI.GOOGLE_PROVIDER ) .build(), RC_SIGN_IN); } } }; } 

También estoy siguiendo el mismo tutorial y terminé aquí buscando la solución. Traté de encontrar una solución y lo he encontrado. Hay dos método sobrecargado para setProviders () . El que tiene setProviders (String … providers) está obsoleto. Utilicé setProviders (List <IdpConfig> idpConfigs) . A continuación se muestra el código:

Primero cree una instancia List de IdpConfig, haga esto donde crea la instancia de FirebaseDatabase. En otras palabras, haz esto fuera de todos los métodos y dentro de tu clase.

 List<AuthUI.IdpConfig> providers; 

Escribe esto en tu onCreate () :

 providers = new ArrayList<>(); 

Entonces reemplace su código con esto:

 mMessagesDatabaseReference.addChildEventListener(mChildEventListener); mAuthStateListener = new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser user = firebaseAuth.getCurrentUser(); if (user != null){ Toast.makeText(MainActivity.this,"You are signed in, Welcome", Toast.LENGTH_SHORT).show(); }else { providers.add(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build()); providers.add(new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build()); startActivityForResult( AuthUI.getInstance() .createSignInIntentBuilder() .setIsSmartLockEnabled(false) .setProviders(providers) .build(), RC_SIGN_IN); } } }; 

¡Ya terminaste! Tenga un buen día 🙂

Simplemente reemplace "setProvider" por "setAvailableProviders", funcionará.

Debe utilizar setAvailableProviders() lugar de setProviders como se muestra en el ejemplo de FirebaseUI en el siguiente enlace: https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md#sign-in-examples

Compruebe que su emulador y el nivel de API de la compilación son iguales y no emulan a un nivel API superior. El error de Google Play Services vino de esto para mí.

Compruebe esto en el archivo build.gradle;

El siguiente ejemplo es API Level 24

 android { compileSdkVersion 24 buildToolsVersion "24.0.1" ...} 
  • Autenticación de Firebase en el sitio web de wordpress
  • Obtener id token en la aplicación de Android y verificarlo en el servidor de back-end (¿Cómo usar id token?)
  • Inicia sesión con Facebook si la cuenta ya está vinculada con google durante la suscripción inicial en Firebase Android
  • FirebaseAuth.getCurrentUser () devuelve null DisplayName
  • ¿Puedo hacer que Firebase utilice un proceso de inicio de sesión de nombre de usuario?
  • Empezó a usar el nuevo sitio web de Firebase y estoy recibiendo este error al probar el programa de ejemplo de autenticación de Android
  • Audífono de estado de firebase de Android firebase llamado varias veces
  • Firebase restablecer enlace de contraseña no funciona
  • ¿Cómo capturar Android Firebase signUpWithEmailAndPassword código de error?
  • Cómo obtener mediante programación la lista de usuarios registrados en Firebase
  • El perfil de FirebaseUser no se actualiza
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.