Antes de comenzar
- Agrega Firebase a tu proyecto de iOS.
- Incluye los siguientes pods en el
Podfile
:pod 'Firebase/Auth'
- Obtén las claves del servidor del proyecto:
- Ve a la página Cuentas de servicio en la configuración del proyecto.
- Haz clic en Generar nueva clave privada en la parte inferior de la sección SDK de Firebase Admin de la página Cuentas de servicio.
- El par de claves públicas o privadas de la cuenta de servicio nueva se guarda de manera automática en la computadora. Copia este archivo en el servidor de autenticación.
Autentica con Firebase
- Importa el módulo de Firebase en
UIApplicationDelegate
de la siguiente manera:Swift
import Firebase
Objective-C
@import Firebase;
- Configura una instancia compartida de
FirebaseApp
, generalmente en el métodoapplication:didFinishLaunchingWithOptions:
de tu app:Swift
// Use Firebase library to configure APIs FirebaseApp.configure()
Objective-C
// Use Firebase library to configure APIs [FIRApp configure];
- Cuando los usuarios accedan a la app, envía sus credenciales de acceso (por ejemplo, el nombre de usuario y la contraseña) al servidor de autenticación. El servidor verificará las credenciales y devolverá un token personalizado siempre que sean válidas.
- Después de recibir el token personalizado de tu servidor de autenticación, pásalo a
signInWithCustomToken
para que el usuario acceda:Swift
Auth.auth().signIn(withCustomToken: customToken ?? "") { (user, error) in // ... }
Objective‑C
[[FIRAuth auth] signInWithCustomToken:customToken completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
Pasos siguientes
Cuando un usuario accede por primera vez, se crea una cuenta de usuario nueva y se la vincula con las credenciales (el nombre de usuario y la contraseña, el número de teléfono o la información del proveedor de autenticación) que el usuario utilizó para acceder. Esta cuenta nueva se almacena como parte de tu proyecto de Firebase y se puede usar para identificar a un usuario en todas las apps del proyecto, sin importar cómo acceda.
-
En tus apps, puedes obtener la información básica de perfil del usuario a partir del objeto
FIRUser
. Consulta Administra usuarios en Firebase. En tus reglas de seguridad de Firebase Realtime Database y Cloud Storage, puedes obtener el ID del usuario único que accedió a partir de la variable
auth
y usarlo para controlar a qué datos podrá acceder.
Para permitir que los usuarios accedan a la app con varios proveedores de autenticación, puedes vincular las credenciales de estos proveedores con una cuenta de usuario existente.
Para salir de la sesión de un usuario, llama a signOut:
.
Swift
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print ("Error signing out: %@", signOutError) }
Objective‑C
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
Tal vez sea conveniente que agregues código de administración de errores para todos los errores de autenticación. Consulta Maneja errores.