Antes de que empieces
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
A continuación, realice algunos pasos de configuración:
- Obtenga las claves del servidor de su proyecto:
- Vaya a la página Cuentas de servicio en la configuración de su proyecto.
- Haga clic en Generar nueva clave privada en la parte inferior de la sección Firebase Admin SDK de la página Cuentas de servicio .
- El par de claves pública/privada de la nueva cuenta de servicio se guarda automáticamente en su computadora. Copie este archivo a su servidor de autenticación.
Autenticar con Firebase
- Importe el módulo
FirebaseCore
en suUIApplicationDelegate
, así como cualquier otro módulo de Firebase que utilice el delegado de su aplicación. Por ejemplo, para usar Cloud Firestore y autenticación:Interfaz de usuario rápida
import SwiftUI import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
Rápido
import FirebaseCore import FirebaseFirestore import FirebaseAuth // ...
C objetivo
@import FirebaseCore; @import FirebaseFirestore; @import FirebaseAuth; // ...
- Configure una instancia compartida
FirebaseApp
en el métodoapplication(_:didFinishLaunchingWithOptions:)
del delegado de su aplicación:Interfaz de usuario rápida
// Use Firebase library to configure APIs FirebaseApp.configure()
Rápido
// Use Firebase library to configure APIs FirebaseApp.configure()
C objetivo
// Use Firebase library to configure APIs [FIRApp configure];
- Si está utilizando SwiftUI, debe crear un delegado de aplicación y adjuntarlo a su estructura
App
medianteUIApplicationDelegateAdaptor
oNSApplicationDelegateAdaptor
. También debes desactivar el cambio de delegados de aplicaciones. Para obtener más información, consulte las instrucciones de SwiftUI .Interfaz de usuario rápida
@main struct YourApp: App { // register app delegate for Firebase setup @UIApplicationDelegateAdaptor(AppDelegate.self) var delegate var body: some Scene { WindowGroup { NavigationView { ContentView() } } } }
- Cuando los usuarios inicien sesión en su aplicación, envíe sus credenciales de inicio de sesión (por ejemplo, su nombre de usuario y contraseña) a su servidor de autenticación. Su servidor verifica las credenciales y devuelve un token personalizado si son válidas.
- Después de recibir el token personalizado de su servidor de autenticación, páselo a
signInWithCustomToken
para iniciar sesión como usuario:Rápido
Auth.auth().signIn(withCustomToken: customToken ?? "") { user, error in // ... }
C objetivo
[[FIRAuth auth] signInWithCustomToken:customToken completion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
Próximos pasos
Después de que un usuario inicia sesión por primera vez, se crea una nueva cuenta de usuario y se vincula a las credenciales (es decir, el nombre de usuario y la contraseña, el número de teléfono o la información del proveedor de autenticación) con las que el usuario inició sesión. Esta nueva cuenta se almacena como parte de su proyecto de Firebase y se puede usar para identificar a un usuario en cada aplicación de su proyecto, independientemente de cómo inicie sesión el usuario.
En sus aplicaciones, puede obtener la información básica del perfil del usuario desde el objeto
User
. Consulte Administrar usuarios .En las reglas de seguridad de Firebase Realtime Database y Cloud Storage, puede obtener el ID de usuario único del usuario que inició sesión a partir de la variable
auth
y usarlo para controlar a qué datos puede acceder un usuario.
Puede permitir que los usuarios inicien sesión en su aplicación utilizando múltiples proveedores de autenticación vinculando las credenciales del proveedor de autenticación a una cuenta de usuario existente.
Para cerrar la sesión de un usuario, llame signOut:
.
Rápido
let firebaseAuth = Auth.auth() do { try firebaseAuth.signOut() } catch let signOutError as NSError { print("Error signing out: %@", signOutError) }
C objetivo
NSError *signOutError; BOOL status = [[FIRAuth auth] signOut:&signOutError]; if (!status) { NSLog(@"Error signing out: %@", signOutError); return; }
Es posible que también desee agregar un código de manejo de errores para toda la gama de errores de autenticación. Consulte Manejar errores .