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:
- Contraseña olvidada en Firebase para Android
- Fallo de autenticación anónima de Firebase a través de datos móviles
- UserProfileChangeRequest setPhotoUri - ¿Cómo se hace?
- Firebase: ¿Puedo usar el nuevo kit de cuentas de Facebook para autenticar usuarios de aplicaciones?
- Android Firebase DynamiteModule: Error al cargar el descriptor del módulo
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); } } }; }
- Firebase Android Auth objeto sin devolución de llamada de disparo
- Uso del correo y la contraseña para autenticarse mediante la API REST
- Android Firebase - no puede obtener userid usando getUid () - Error: en la referencia de objeto nulo
- 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 Android onAuthStateChanged llamado dos veces
- La verificación de correo electrónico de Firebase no funciona correctamente
- Cómo deshacerse de la advertencia de Android Studio "Resultado de getException () no lanzado"?
- Google Firebase se cierra y se olvida del usuario en la aplicación para Android
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" ...}
- Xamarin Android Añadir texto del botón todos los casquetes – ¿Cómo aplicar el estilo a través de la aplicación?
- Cómo alinear 3 botones en una línea, Android?