Primeros pasos con Cloud Storage para Unity

Con Cloud Storage para Firebase puedes subir y compartir contenido generado por los usuarios, como imágenes y videos, lo que te permite integrar contenido de rich media en tus apps. Los 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 te permite subir de forma segura estos archivos directamente desde dispositivos móviles y navegadores web, además de administrar las redes irregulares con facilidad.

Antes de comenzar

Antes de usar Cloud Storage, deberás crear un proyecto de Firebase y agregar los paquetes del SDK de Firebase Unity a tu proyecto de Unity.

Configuración:

Requisitos previos

Android

  • Unity 5.0 o una versión más reciente
  • NDK de Android 10d o una versión más reciente

iOS

  • Unity 5.0 o una versión más reciente
  • Xcode 8.0 o una versión más reciente

Si todavía no tienes un proyecto de Unity, puedes descargar uno de los ejemplos de inicio rápido para probar una función de Firebase específica. Si usas un inicio rápido, recuerda obtener el identificador de paquete en la configuración del proyecto, ya que lo necesitarás en el próximo paso.

Configura la app en Firebase console

Para agregar Firebase a la app, debes tener un proyecto y un archivo de configuración de Firebase.

Para crear un proyecto de Firebase:

  1. Crea un proyecto en Firebase console si no lo hiciste anteriormente. Haz clic en Agregar proyecto. Si ya tienes un proyecto de Google asociado con la app para dispositivos móviles, selecciónalo en el menú desplegable Nombre del proyecto. De lo contrario, escribe un nombre para crear un proyecto nuevo.
  2. Opcional: Edita el ID del proyecto. Se asigna un ID único al proyecto de manera automática, que se usa públicamente en funciones visibles de Firebase, como las URL de bases de datos y tu subdominio de Firebase Hosting. Puedes cambiarlo en este momento si deseas usar un subdominio específico.
  3. Sigue los pasos de configuración restantes y haz clic en Crear proyecto (o Agregar Firebase si usas un proyecto existente) a fin de aprovisionar recursos para el proyecto. Este proceso suele tardar algunos minutos. Cuando finalice, verás la descripción general del proyecto.

Android

  1. Haz clic en Agrega Firebase a tu app para Android y sigue los pasos de la configuración. Si importas un proyecto de Google existente, es posible que esto ocurra de forma automática y solo tengas que descargar el archivo de configuración.
  2. Ingresa el nombre del paquete de la app cuando se te solicite. Es importante que ingreses el nombre de paquete que tu app está usando. Esto solo se puede configurar cuando agregas una app al proyecto de Firebase.
  3. Durante el proceso, descargarás un archivo google-services.json. Puedes volver a descargarlo en cualquier momento.
  4. Después de agregar el código de inicialización, ejecuta la app para verificar con Firebase console que instalaste Firebase correctamente.

iOS

  1. Haz clic en Agrega Firebase a tu app para iOS y sigue los pasos de configuración. Si importas un proyecto de Google existente, es posible que esto ocurra de forma automática y solo tengas que descargar el archivo de configuración.
  2. Ingresa el ID de paquete de la app cuando se te solicite. Es importante que ingreses el ID de paquete que está usando la app. Esto solo se puede configurar cuando agregas una app al proyecto de Firebase.
  3. Durante el proceso, descargarás un archivo GoogleService-Info.plist. Puedes volver a descargarlo en cualquier momento.
  4. Después de agregar el código de inicialización, ejecuta la app para verificar con Firebase console que instalaste Firebase correctamente.
  5. Arrastra el archivo GoogleService-Info.plist que se descargó de Firebase console a cualquier carpeta del proyecto de Unity.

Agrega el SDK de Firebase Unity a la app

  1. Descarga el SDK de Firebase Unity.
  2. Selecciona el elemento de menú Assets > Import Package > Custom Package.
  3. Importa el paquete FirebaseStorage.unitypackage desde el SDK de Firebase Unity que descargaste previamente.
  4. Cuando aparezca la ventana Importar paquete de Unity, haz clic en el botón Importar.

Inicializa el SDK

El SDK de Firebase Unity en Android requiere los Servicios de Google Play actualizados. Se debe agregar el siguiente código al inicio de la aplicación para buscar y, de forma opcional, actualizar los Servicios de Google Play a la versión que el SDK de Firebase Unity requiere. De esta manera, se podrá llamar a otros métodos en el SDK.

Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
  var dependencyStatus = task.Result;
  if (dependencyStatus == Firebase.DependencyStatus.Available) {
    // Create and hold a reference to your FirebaseApp, i.e.
    //   app = Firebase.FirebaseApp.DefaultInstance;
    // where app is a Firebase.FirebaseApp property of your application class.

    // Set a flag here indicating that Firebase is ready to use by your
    // application.
  } else {
    UnityEngine.Debug.LogError(System.String.Format(
      "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
    // Firebase Unity SDK is not safe to use here.
  }
});

Compila la app

Android

  1. Selecciona la opción de menú File > Build Settings.
  2. Selecciona Android en la lista Platform.
  3. Haz clic en Switch Platform para establecer a Android como plataforma seleccionada.
  4. Espera a que se detenga el ícono giratorio (de compilación en proceso) que se encuentra en la esquina inferior derecha de la barra de estado de Unity.
  5. Haz clic en Build and Run.

iOS

  1. Selecciona la opción de menú File > Build Settings.
  2. Selecciona iOS en la lista Platform.
  3. Haz clic en Switch Platform para establecer a iOS como plataforma seleccionada.
  4. Espera a que se detenga el ícono giratorio (de compilación en proceso) que se encuentra en la esquina inferior derecha de la barra de estado de Unity.
  5. Haz clic en Build and Run.

Configura el acceso público

Cloud Storage para Firebase proporciona un lenguaje de reglas declarativas que te permite definir cómo se deben estructurar los datos, cómo se deben indexar y cuándo se pueden leer y escribir. Según la configuración predeterminada, el acceso de lectura y escritura a Storage es restringido, por lo que solo los usuarios autenticados pueden leer o escribir datos. Si quieres comenzar sin configurar Authentication, puedes configurar las reglas para acceso público.

Esto hace que Storage esté abierto para todos, incluso la gente que no usa tu app, así que asegúrate de volver a restringir Storage cuando configures la autenticación.

Accede a la clase FirebaseStorage

Firebase.Storage.FirebaseStorage es el punto de entrada para el SDK de Unity de Cloud Storage.

// Get a reference to the storage service, using the default Firebase App
FirebaseStorage storage = FirebaseStorage.DefaultInstance;

Estás listo para comenzar a usar Cloud Storage.

En primer lugar, veamos cómo crear una referencia a Cloud Storage.

Configuración avanzada

Hay algunos casos de uso que necesitan configuración adicional:

El primer caso de uso es perfecto si tienes usuarios en todo el mundo y quieres almacenar sus datos cerca de ellos. Por ejemplo, puedes crear depósitos en EE.UU., Europa y Asia para almacenar datos de usuarios de esas regiones, a fin de reducir la latencia.

El segundo caso de uso es útil si tienes datos con diferentes patrones de acceso. Por ejemplo, puedes configurar un depósito regional o multirregional que almacene fotos o cualquier tipo de contenido al que se accede con frecuencia y, por otro lado, un depósito de Nearline o Coldline que almacene copias de seguridad de usuarios y otros tipos de contenido a los que se accede con poca frecuencia.

En ambos casos de uso, te recomendamos usar varios depósitos de almacenamiento.

El tercer caso de uso es útil si estás creando una app, como Google Drive, que permite a los usuarios acceder con varias cuentas (por ejemplo, una cuenta personal y una cuenta de trabajo). Puedes usar una instancia de app de Firebase personalizada para autenticar cada cuenta adicional.

Usa varios depósitos de almacenamiento

Si deseas usar un depósito de almacenamiento distinto del que se proporcionó antes de forma predeterminada o usar varios depósitos de almacenamiento en una sola app, puedes crear una instancia de FirebaseStorage que haga referencia a tu depósito personalizado:

// Get a non-default Storage bucket
var storage = FirebaseStorage.GetInstance("gs://my-custom-bucket");

Trabaja con depósitos importados

Cuando importes un depósito existente de Cloud Storage a Firebase, deberás permitir que Firebase acceda a estos archivos con la herramienta gsutil que se incluye en el SDK de Google Cloud:

gsutil -m acl ch -r -u firebase-storage@system.gserviceaccount.com:O gs://<your-cloud-storage-bucket>

Esto no afecta los depósitos creados recientemente, ya que el control de acceso predeterminado permite Firebase. Esta es una medida temporal y se ejecutará de forma automática en el futuro.

Usa una app de Firebase personalizada

Si estás compilando una app más complicada con una FirebaseApp personalizada, puedes crear una instancia de FirebaseStorage inicializada con esa app:

// Get the default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.GetInstance(customApp);

// Get a non-default bucket from a custom FirebaseApp
FirebaseStorage storage = FirebaseStorage.GetInstance(customApp, "gs://my-custom-bucket");

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.