Puede usar Firebase Authentication para crear y usar cuentas anónimas temporales para autenticarse con Firebase. Estas cuentas anónimas temporales se pueden utilizar para permitir que los usuarios que aún no se hayan registrado en su aplicación trabajen con datos protegidos por reglas de seguridad. Si un usuario anónimo decide registrarse en su aplicación, puede vincular sus credenciales de inicio de sesión a la cuenta anónima para que pueda continuar trabajando con sus datos protegidos en sesiones futuras.
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
- Si aún no has conectado tu aplicación a tu proyecto de Firebase, hazlo desde Firebase console .
- Habilitar autenticación anónima:
- En Firebase console , abre la sección Auth .
- En la página Métodos de inicio de sesión , habilite el método de inicio de sesión anónimo .
- Opcional : si actualizó su proyecto a Firebase Authentication con Identity Platform , puede habilitar la limpieza automática. Cuando habilita esta configuración, las cuentas anónimas de más de 30 días se eliminarán automáticamente. En proyectos con la limpieza automática habilitada, la autenticación anónima ya no contará para los límites de uso ni las cuotas de facturación. Consulte Limpieza automática .
Autenticarse con Firebase de forma anónima
Cuando un usuario que no ha iniciado sesión utiliza una función de la aplicación que requiere autenticación con Firebase, inicie sesión del usuario de forma anónima completando los siguientes pasos:
- 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() } } } }
- Llame al método
signInAnonymouslyWithCompletion:
::Rápido
Auth.auth().signInAnonymously { authResult, error in // ... }
C objetivo
[[FIRAuth auth] signInAnonymouslyWithCompletion:^(FIRAuthDataResult * _Nullable authResult, NSError * _Nullable error) { // ... }];
- Si el método
signInAnonymouslyWithCompletion:
se completa sin errores, puede obtener los datos de la cuenta del usuario anónimo del objetoFIRAuthDataResult
:Rápido
guard let user = authResult?.user else { return } let isAnonymous = user.isAnonymous // true let uid = user.uid
C objetivo
FIRUser *user = authResult.user; BOOL isAnonymous = user.anonymous; // YES NSString *uid = user.uid;
Convertir una cuenta anónima en una cuenta permanente
Cuando un usuario anónimo se registra en su aplicación, es posible que desee permitirle continuar su trabajo con su nueva cuenta; por ejemplo, es posible que desee que los artículos que el usuario agregó a su carrito de compras antes de registrarse estén disponibles en su nueva cuenta. carrito de compras de la cuenta. Para hacerlo, complete los siguientes pasos:
- Cuando el usuario se registre, complete el flujo de inicio de sesión para el proveedor de autenticación del usuario hasta, pero sin incluir, llamar a uno de los métodos
FIRAuth.signInWith
. Por ejemplo, obtenga el token de identificación de Google del usuario, el token de acceso de Facebook o la dirección de correo electrónico y la contraseña. Obtenga una
FIRAuthCredential
para el nuevo proveedor de autenticación:Iniciar sesión en Google
Rápido
guard let authentication = user?.authentication, let idToken = authentication.idToken else { return } let credential = GoogleAuthProvider.credential(withIDToken: idToken, accessToken: authentication.accessToken)
C objetivo
FIRAuthCredential *credential = [FIRGoogleAuthProvider credentialWithIDToken:result.user.idToken.tokenString accessToken:result.user.accessToken.tokenString];
Iniciar sesión en Facebook
Rápido
let credential = FacebookAuthProvider .credential(withAccessToken: AccessToken.current!.tokenString)
C objetivo
FIRAuthCredential *credential = [FIRFacebookAuthProvider credentialWithAccessToken:[FBSDKAccessToken currentAccessToken].tokenString];
Inicio de sesión con contraseña de correo electrónico
Rápido
let credential = EmailAuthProvider.credential(withEmail: email, password: password)
C objetivo
FIRAuthCredential *credential = [FIREmailAuthProvider credentialWithEmail:email password:password];
Pase el objeto
FIRAuthCredential
al métodolinkWithCredential:completion:
del usuario que inicia sesión:Rápido
user.link(with: credential) { authResult, error in // ... } }
C objetivo
[[FIRAuth auth].currentUser linkWithCredential:credential completion:^(FIRAuthDataResult *result, NSError *_Nullable error) { // ... }];
Si la llamada a linkWithCredential:completion:
tiene éxito, la nueva cuenta del usuario puede acceder a los datos de Firebase de la cuenta anónima.
limpieza automática
Si actualizó su proyecto a Firebase Authentication con Identity Platform , puede habilitar la limpieza automática en Firebase console. Cuando habilitas esta función, permites que Firebase elimine automáticamente cuentas anónimas con más de 30 días. En proyectos con la limpieza automática habilitada, la autenticación anónima no contará para los límites de uso ni las cuotas de facturación.
- Cualquier cuenta anónima creada después de habilitar la limpieza automática puede eliminarse automáticamente en cualquier momento después de 30 días de su creación.
- Las cuentas anónimas existentes serán elegibles para la eliminación automática 30 días después de habilitar la limpieza automática.
- Si desactiva la limpieza automática, cualquier cuenta anónima programada para su eliminación seguirá estando programada para su eliminación.
- Si "actualiza" una cuenta anónima vinculándola a cualquier método de inicio de sesión, la cuenta no se eliminará automáticamente.
Si desea ver cuántos usuarios se verán afectados antes de habilitar esta función y ha actualizado su proyecto a Firebase Authentication con Identity Platform , puede filtrar por is_anon
en Cloud Logging .
Próximos pasos
Ahora que los usuarios pueden autenticarse con Firebase, puedes controlar su acceso a los datos en tu base de datos de Firebase usando las reglas de Firebase .