Puedes usar Firebase Authentication para permitir que los usuarios inicien sesión en tu aplicación usando uno o más métodos de inicio de sesión, incluido el inicio de sesión con dirección de correo electrónico y contraseña, y proveedores de identidad federados, como el inicio de sesión con Google y el inicio de sesión con Facebook. Este tutorial lo ayuda a comenzar con la autenticación de Firebase mostrándole cómo agregar una dirección de correo electrónico y una contraseña de inicio de sesión a su aplicación.
Conecte su aplicación a Firebase
- Instale el SDK de Firebase .
- En Firebase console , agrega tu aplicación a tu proyecto de Firebase.
Agregue autenticación de Firebase a su aplicación
Utilice Swift Package Manager para instalar y administrar las dependencias de Firebase.
- En Xcode, con el proyecto de su aplicación abierto, navegue hasta Archivo > Agregar paquetes .
- Cuando se le solicite, agregue el repositorio SDK de las plataformas Firebase Apple:
- Elija la biblioteca de autenticación de Firebase.
- Agregue el indicador
-ObjC
a la sección Otros indicadores del vinculador de la configuración de compilación de su objetivo. - Cuando termine, Xcode comenzará automáticamente a resolver y descargar sus dependencias en segundo plano.
https://github.com/firebase/firebase-ios-sdk.git
(Opcional) Prototipo y prueba con Firebase Local Emulator Suite
Antes de hablar sobre cómo su aplicación autentica a los usuarios, presentemos un conjunto de herramientas que puede utilizar para crear prototipos y probar la funcionalidad de autenticación: Firebase Local Emulator Suite. Si está decidiendo entre proveedores y técnicas de autenticación, probando diferentes modelos de datos con datos públicos y privados usando autenticación y reglas de seguridad de Firebase, o creando prototipos de diseños de interfaz de usuario de inicio de sesión, poder trabajar localmente sin implementar servicios en vivo puede ser una gran idea. .
Un emulador de autenticación es parte de Local Emulator Suite, que permite que su aplicación interactúe con el contenido y la configuración de la base de datos emulada, así como, opcionalmente, con los recursos del proyecto emulado (funciones, otras bases de datos y reglas de seguridad).
Usar el emulador de autenticación implica solo unos pocos pasos:
- Agregar una línea de código a la configuración de prueba de su aplicación para conectarse al emulador.
- Desde la raíz del directorio de su proyecto local, ejecute
firebase emulators:start
. - Usar la interfaz de usuario de Local Emulator Suite para la creación de prototipos interactivos o la API REST del emulador de autenticación para pruebas no interactivas.
Hay una guía detallada disponible en Conecte su aplicación al emulador de autenticación . Para obtener más información, consulte la introducción a Local Emulator Suite .
Ahora continuemos con cómo autenticar usuarios.
Inicializar el SDK de Firebase
En el delegado de tu aplicación, primero importa el SDK de Firebase:
Rápido
import FirebaseCore
C objetivo
@import FirebaseCore;
Luego, en el application:didFinishLaunchingWithOptions:
:, inicialice el objeto FirebaseApp
:
Rápido
// Use Firebase library to configure APIs
FirebaseApp.configure()
C objetivo
// Use Firebase library to configure APIs
[FIRApp configure];
Escuche el estado de autenticación
Para cada una de las vistas de su aplicación que necesiten información sobre el usuario que inició sesión, adjunte un oyente al objeto FIRAuth
. Se llama a este oyente cada vez que cambia el estado de inicio de sesión del usuario.
Adjunte el oyente en el método viewWillAppear
del controlador de vista:
Rápido
handle = Auth.auth().addStateDidChangeListener { auth, user in
// ...
}
C objetivo
self.handle = [[FIRAuth auth]
addAuthStateDidChangeListener:^(FIRAuth *_Nonnull auth, FIRUser *_Nullable user) {
// ...
}];
Y separe el oyente en el método viewWillDisappear
del controlador de vista:
Rápido
Auth.auth().removeStateDidChangeListener(handle!)
C objetivo
[[FIRAuth auth] removeAuthStateDidChangeListener:_handle];
Registrar nuevos usuarios
Cree un formulario que permita a nuevos usuarios registrarse en su aplicación utilizando su dirección de correo electrónico y una contraseña. Cuando un usuario completa el formulario, valide la dirección de correo electrónico y la contraseña proporcionadas por el usuario, luego páselas al método createUser
:
Rápido
Auth.auth().createUser(withEmail: email, password: password) { authResult, error in
// ...
}
C objetivo
[[FIRAuth auth] createUserWithEmail:email
password:password
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Iniciar sesión usuarios existentes
Cree un formulario que permita a los usuarios existentes iniciar sesión con su dirección de correo electrónico y contraseña. Cuando un usuario completa el formulario, llame al método signIn
:
Rápido
Auth.auth().signIn(withEmail: email, password: password) { [weak self] authResult, error in
guard let strongSelf = self else { return }
// ...
}
C objetivo
[[FIRAuth auth] signInWithEmail:self->_emailField.text
password:self->_passwordField.text
completion:^(FIRAuthDataResult * _Nullable authResult,
NSError * _Nullable error) {
// ...
}];
Obtener información del usuario
Después de que un usuario inicia sesión correctamente, puede obtener información sobre el usuario. Por ejemplo, en su oyente de estado de autenticación :
Rápido
if let user = user {
// The user's ID, unique to the Firebase project.
// Do NOT use this value to authenticate with your backend server,
// if you have one. Use getTokenWithCompletion:completion: instead.
let uid = user.uid
let email = user.email
let photoURL = user.photoURL
var multiFactorString = "MultiFactor: "
for info in user.multiFactor.enrolledFactors {
multiFactorString += info.displayName ?? "[DispayName]"
multiFactorString += " "
}
// ...
}
C objetivo
if (user) {
// The user's ID, unique to the Firebase project.
// Do NOT use this value to authenticate with your backend server,
// if you have one. Use getTokenWithCompletion:completion: instead.
NSString *email = user.email;
NSString *uid = user.uid;
NSMutableString *multiFactorString = [NSMutableString stringWithFormat:@"MultiFactor: "];
for (FIRMultiFactorInfo *info in user.multiFactor.enrolledFactors) {
[multiFactorString appendString:info.displayName];
[multiFactorString appendString:@" "];
}
NSURL *photoURL = user.photoURL;
// ...
}
Próximos pasos
Aprenda cómo agregar soporte para otros proveedores de identidad y cuentas de invitados anónimos:
- Iniciar sesión en Google
- Iniciar sesión en Facebook
- Iniciar sesión
- Iniciar sesión en GitHub
- Inicio de sesión anónimo