Si usas Firebase Machine Learning para alojar modelos personalizados, debes migrar a otra solución antes de que se cierre el servicio de hosting de Firebase ML el 15 de junio de 2027.
Una alternativa que puedes usar es alojar tus modelos con Cloud Storage para Firebase. Sigue esta guía para migrar tus modelos de Firebase ML a Cloud Storage.
Descarga tus modelos de TensorFlow Lite
Si aún no tienes tus modelos almacenados de forma local, descárgalos de tu proyecto de Firebase. Tienes dos opciones para hacerlo:
Descárgalos de a uno desde Firebase console
- Abre la sección de la página Machine Learning en Firebase console.
- Para cada modelo que quieras migrar, haz clic en el menú ampliado de tres puntos y, luego, en Descargar modelo.
Descarga todos tus modelos alojados de forma masiva
- Abre la página Machine Learning en Firebase console.
- Haz clic en el botón Obtener comando para descarga masiva para obtener un comando
curlque descargue todos los modelos del proyecto. Estas URLs vencerán en 7 días. - Ejecuta el comando en tu terminal local o en
Cloud Shell. Si usas Cloud Shell, ten en cuenta su
límite de almacenamiento en disco de 5 GB.
El comando descargará tus modelos en una carpeta local llamada
hosted_models.
Aloja tus modelos con Cloud Storage
Una vez que tengas tus modelos de forma local, debes subirlos a un bucket de Cloud Storage.
Elige el método de carga que satisfaga tus necesidades:
Sube tus modelos de a uno
- Crea un bucket de Storage: En Firebase console, ve a Bases de datos y almacenamiento > Storage y sigue los pasos de incorporación para crear un bucket si aún no lo hiciste. Ten en cuenta que esto requiere una cuenta de facturación. Consulta los precios de Firebase para obtener más detalles.
- Aún en la sección Storage, sube tus archivos de modelo
.tflitea la ruta deseada.
Sube tus modelos de forma masiva
- Crea un bucket de Storage: En Firebase console, ve a Bases de datos y almacenamiento > Storage y sigue los pasos de incorporación para crear un bucket si aún no lo hiciste. Ten en cuenta que esto requiere una cuenta de facturación. Consulta los precios de Firebase para obtener más detalles.
Usa el siguiente comando
gcloudpara subir todos los modelos de tu carpeta localhosted_models:gcloud storage rsync --recursive ./hosted_models gs://<your-storage-bucket>/models/
Configura la seguridad y la integración de la app
Asegúrate de que tus reglas de seguridad de Storage permitan que tu app lea los archivos del modelo. Por ejemplo, puedes restringir el acceso a los usuarios autenticados.
Agrega Storage a tu app: Sigue las guías de configuración para Android, Apple, o Flutter.
Actualiza el código de tu aplicación para descargar los archivos
.tflitede tu nuevo bucket de Storage.Android
modelRef = storage.getReferenceFromUrl("gs://YOUR_BUCKET/path/to/model.tflite") val localFile = File.createTempFile("models", "tflite") modelRef.getFile(localFile).addOnSuccessListener { // Local temp file has been created }.addOnFailureListener { // Handle any errors }Apple
let gsReference = storage.reference(forURL: "gs://YOUR_BUCKET/path/to/model.tflite") // Create local filesystem URL let localURL = URL(string: "path/to/model.tflite")! // Download to the local filesystem let downloadTask = gsReference.write(toFile: localURL) { url, error in if let error = error { // Uh-oh, an error occurred! } else { // Local file URL for "model.tflite" is returned } }Flutter
final modelRef = FirebaseStorage.instance.refFromURL("gs://YOUR_BUCKET/path/to/model.tflite"); final appDocDir = await getApplicationDocumentsDirectory(); final filePath = "${appDocDir.absolute}/models/model.tflite"; final file = File(filePath); final downloadTask = modelRef.writeToFile(file); downloadTask.snapshotEvents.listen((taskSnapshot) { switch (taskSnapshot.state) { case TaskState.running: // TODO: Handle this case. break; case TaskState.paused: // TODO: Handle this case. break; case TaskState.success: // TODO: Handle this case. break; case TaskState.canceled: // TODO: Handle this case. break; case TaskState.error: // TODO: Handle this case. break; } });Una vez que se descargue el modelo, puedes usar tu biblioteca de TensorFlow Lite existente para cargarlo y usarlo.
(Opcional) Considera usar Firebase Remote Config para actualizar de forma dinámica las rutas de los modelos en tu app sin necesidad de lanzar una versión nueva.
Opcional: Migra a la API de LiteRT CompiledModel
Si tu app aún usa la API heredada de TensorFlow Lite Interpreter, considera
migrar a la API de LiteRT CompiledModel,
que ofrece compatibilidad mejorada con la aceleración de hardware y otras mejoras en comparación con
la API heredada.