Cloud Storage para Firebase te permite cargar y compartir contenido generado por el usuario, como imágenes y videos, lo que te permite crear contenido multimedia enriquecido en tus aplicaciones. Sus datos se almacenan en un depósito de Google Cloud Storage , una solución de almacenamiento de objetos a escala de exabytes con alta disponibilidad y redundancia global. Cloud Storage para Firebase le permite cargar estos archivos de forma segura directamente desde dispositivos móviles y navegadores web, manejando redes irregulares con facilidad.
Requisitos previos
- Instale el SDK de Firebase .
- Agrega tu aplicación a tu proyecto de Firebase en Firebase console .
Crear un depósito de Cloud Storage predeterminado
En el panel de navegación de Firebase console , selecciona Almacenamiento y luego haz clic en Comenzar .
Revise los mensajes sobre cómo proteger sus datos de Cloud Storage mediante reglas de seguridad. Durante el desarrollo, considere configurar sus reglas para el acceso público .
Seleccione una ubicación para su depósito predeterminado de Cloud Storage.
Esta configuración de ubicación es la ubicación de recursos predeterminada de Google Cloud Platform (GCP) de su proyecto. Tenga en cuenta que esta ubicación se usará para los servicios de GCP en su proyecto que requieren una configuración de ubicación, específicamente, su base de datos de Cloud Firestore y su aplicación App Engine (que es necesaria si usa Cloud Scheduler).
Si no puedes seleccionar una ubicación, entonces tu proyecto ya tiene una ubicación de recursos de GCP predeterminada. Se configuró durante la creación del proyecto o al configurar otro servicio que requiere una configuración de ubicación.
Si tiene el plan Blaze, puede crear varios depósitos , cada uno con su propia ubicación .
Haga clic en Listo.
Configurar el acceso público
Cloud Storage para Firebase proporciona un lenguaje de reglas declarativas que le permite definir cómo se deben estructurar los datos, cómo se deben indexar y cuándo se pueden leer y escribir los datos. De forma predeterminada, el acceso de lectura y escritura a Cloud Storage está restringido, por lo que solo los usuarios autenticados pueden leer o escribir datos. Para comenzar sin configurar la autenticación , puede configurar sus reglas para el acceso público .
Esto hace que Cloud Storage esté abierto a cualquier persona, incluso a personas que no usan su aplicación, así que asegúrese de restringir su Cloud Storage nuevamente cuando configure la autenticación.
Agregue almacenamiento en la nube 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 Cloud Storage.
- 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
Configurar el almacenamiento en la nube
Debes inicializar Firebase antes de crear o utilizar cualquier referencia de Firebase. Si ya hizo esto para otra función de Firebase, puede omitir este paso.
- 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() } } } }
- Obtenga una referencia al servicio Cloud Storage mediante la aplicación Firebase predeterminada:
Rápido
let storage = Storage.storage()
C objetivo
FIRStorage *storage = [FIRStorage storage];
¡Estás listo para comenzar a usar Cloud Storage!
Primero, aprendamos cómo crear una referencia de Cloud Storage .
Configuración avanzada
Hay algunos casos de uso que requieren configuración adicional:
- Usar depósitos de Cloud Storage en varias regiones geográficas
- Usar depósitos de Cloud Storage en diferentes clases de almacenamiento
- Usar depósitos de Cloud Storage con varios usuarios autenticados en la misma aplicación
El primer caso de uso es perfecto si tiene usuarios en todo el mundo y desea almacenar sus datos cerca de ellos. Por ejemplo, puede crear depósitos en EE. UU., Europa y Asia para almacenar datos para los usuarios de esas regiones y reducir la latencia.
El segundo caso de uso es útil si tiene datos con diferentes patrones de acceso. Por ejemplo: puede configurar un depósito multirregional o regional que almacene imágenes u otro contenido al que se accede con frecuencia, y un depósito nearline o coldline que almacene copias de seguridad de los usuarios u otro contenido al que se acceda con poca frecuencia.
En cualquiera de estos casos de uso, querrás utilizar varios depósitos de Cloud Storage .
El tercer caso de uso es útil si está creando una aplicación, como Google Drive, que permite a los usuarios tener varias cuentas iniciadas (por ejemplo, una cuenta personal y una cuenta de trabajo). Puedes usar una instancia personalizada de la aplicación Firebase para autenticar cada cuenta adicional.
Utilice varios depósitos de Cloud Storage
Si deseas usar un depósito de Cloud Storage distinto al predeterminado proporcionado anteriormente, o usar varios depósitos de Cloud Storage en una sola aplicación, puedes crear una instancia de FIRStorage
que haga referencia a tu depósito personalizado:
Rápido
// Get a non-default Cloud Storage bucket storage = Storage.storage(url:"gs://my-custom-bucket")
C objetivo
// Get a non-default Cloud Storage bucket FIRStorage storage = [FIRStorage storageWithURL:@"gs://my-custom-bucket"];
Trabajar con cubos importados
Al importar un depósito de Cloud Storage existente a Firebase, deberá otorgarle a Firebase la capacidad de acceder a estos archivos mediante la herramienta gsutil
, incluida en el SDK de Google Cloud :
gsutil -m acl ch -r -u service-<project number>@gcp-sa-firebasestorage.iam.gserviceaccount.com gs://<your-cloud-storage-bucket>
Puede encontrar el número de su proyecto como se describe en la introducción a los proyectos de Firebase .
Esto no afecta a los depósitos recién creados, ya que tienen el control de acceso predeterminado configurado para permitir Firebase. Esta es una medida temporal y se realizará automáticamente en el futuro.
Utilice una aplicación Firebase personalizada
Si estás creando una aplicación más complicada usando una FirebaseApp
personalizada, puedes crear una instancia de Storage
inicializada con esa aplicación:
Rápido
// Get the default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp) // Get a non-default bucket from a custom FirebaseApp storage = Storage.storage(app:customApp, url:"gs://my-custom-bucket")
C objetivo
// Get the default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp]; // Get a non-default bucket from a custom FIRApp FIRStorage storage = [FIRStorage storageForApp:customApp withURL:@"gs://my-custom-bucket"];
Próximos pasos
Prepárese para iniciar su aplicación:
Habilite App Check para ayudar a garantizar que solo sus aplicaciones puedan acceder a sus depósitos de almacenamiento.
Configure alertas de presupuesto para su proyecto en la consola de Google Cloud.
Supervise el panel de Uso y facturación en Firebase console para obtener una imagen general del uso de su proyecto en múltiples servicios de Firebase. También puede visitar el panel de uso de almacenamiento en la nube para obtener información de uso más detallada.
Revisa la lista de verificación de lanzamiento de Firebase .