Firebase-tools: Mensaje de error de implementación de Firebase con un firebase.json vacío

Creado en 7 jun. 2017  ·  32Comentarios  ·  Fuente: firebase/firebase-tools

Estaba haciendo un poco de fusión de proyectos hoy y me encontré con un error con el comando de implementación de firebase.

Accidentalmente dejé mi firebase.json con el contenido como:
{}

Y estaba tratando de implementar con firebase deploy --only database pero recibía el siguiente error:
Error: No targets found. Valid targets are: database,storage,functions,hosting

Me tomó un tiempo darme cuenta, ya que pensé que esto estaba relacionado con los problemas recientes de nodejs v8 + el hecho de que he estado implementando con éxito múltiples proyectos durante los últimos 6 meses (reglas y un proyecto de funciones separadas que tenía la base de fuego vacía. json) hasta ahora.

Si el error sugiriera buscar en mi firebase.json, habría ayudado 👍

Comentario más útil

Vine aquí para abrir un problema similar a este.

En mi opinión, sería mejor rellenar previamente la base de fuego con las opciones predeterminadas. Elijo que quería usar solo el alojamiento. Firebase.json debería haberse creado con la opción de alojamiento predeterminada.

{
  "hosting": {
    "public": "public"
  }
}

Todos 32 comentarios

Vine aquí para abrir un problema similar a este.

En mi opinión, sería mejor rellenar previamente la base de fuego con las opciones predeterminadas. Elijo que quería usar solo el alojamiento. Firebase.json debería haberse creado con la opción de alojamiento predeterminada.

{
  "hosting": {
    "public": "public"
  }
}

¡Gracias por los comentarios @ahaverty ! Estoy de acuerdo en que el mensaje de error podría ser un poco más descriptivo. Es un poco difícil ya que el mismo error también ocurre si alguien escribe mal los nombres de destino al usar el indicador --only (por ejemplo, si alguien ejecutó "firebase serve --only functions:funcA" y en realidad no tienen una función llamada funcA) . ¿Qué opinas de un mensaje de error como el siguiente?

Error: no se puede entender qué objetivos implementar. Verifique que especificó objetivos válidos si usó el indicador --only o --except. De lo contrario, verifique su firebase.json para asegurarse de que su proyecto esté inicializado para las funciones deseadas.

@pedrosnk "firebase init" debería haber completado firebase.json con las opciones predeterminadas correctas. Si no fue así, ¿puede presentar otro error e incluir instrucciones detalladas para reproducirlo?

@laurenzlong Eso suena perfecto en ambos casos 👌

Antes que nada gracias por tu respuesta :)

Me di cuenta de lo que me pasó. tal vez es lo mismo que le pasó a @ahaverty.

Escribí $ firebase init y no he seleccionado la opción de hospedaje presionando el espacio. Fui allí y presioné la tecla enter. (no he leído el mensaje completo en el cli).

Fue completamente mi error, pero sentí que este error podía evitarse. Tal vez si presiono entrar en una función, el cli debería poder seleccionarla automáticamente. en lugar de generar un archivo firebase.json vacío.

gracias de nuevo por este proyecto.

Contexto en mi caso de uso: estoy envolviendo nuestros comandos de implementación de Firebase en scripts de bash con algunas comprobaciones encantadoras de "¿Estás seguro? 🤔", ya que me aterroriza que algún día llegue a nuestro proyecto de producción con un código de desarrollo loco, después de no hacerlo correctamente ejecutando firebase use devproject ! También estoy generando firebase.json a través del script, pero estaba haciendo algunas reglas únicas. Bolt se fusionó con mi repositorio de funciones, y terminé presionando esto. @pedrosnk Creo que tu sugerencia rompería mis guiones, pero el mensaje de error de @laurenzlong es una buena solución👌

Aceptar mejor mensaje de error en este caso es lo suficientemente bueno

Estoy de acuerdo con @pedrosnk, el archivo debe completarse previamente con algunas opciones predeterminadas como:

{
    "hosting": {
        "public": "public",
        "rewrites": [
            {
                "source": "**",
                "destination": "/index.html"
            }
        ],
    }
}

Después de todo, todos usan un SPA con Firebase Hosting.

Acabo de enviar un PR para corregir el mensaje de error. @pedrosnk y @PierBover, ¿qué

Hola, @laurenzlong , seleccioné hosting al hacer firebase init y obtuve un archivo vacío.

@PierBover eso es un error entonces. Cuando hago 'firebase init' y selecciono hosting, obtengo esto en mi firbase.json:

{
  "hosting": {
    "public": "public",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ]
  }
}

¿Podrías intentar reproducir el error? Y si puede reproducirlo, ¿presentar otro problema? (Incluya la versión CLI, la plataforma que está ejecutando).

Además, selecciona una función presionando la barra espaciadora (el círculo luego se llena). Si lo seleccionó, se le guiará a través de algunas preguntas relacionadas con el alojamiento (¿Qué desea usar como su directorio público? ¿Configurar como una aplicación de una sola página (reescribir todas las URL en /index.html)?)

Tienes razón, probablemente presioné enter en lugar de espacio. Mi error.

¡No hay problema!

Lo siento, soy un novato y esta es la discusión más cercana al error que estoy viendo. En firebase init, elegí funciones en la nube y obtuve un firebase.json vacío con llaves. Ahora, la implementación me da "no puedo entender qué objetivos implementar". ¿El uso del alojamiento es un requisito previo para usar las funciones de la nube?

Hola @himanshugarg, no puedo reproducir tu error, deberías poder implementarlo después de solo inicializar las funciones. ¿Podría presentar un problema por separado y seguir la plantilla de problemas para que podamos capturar más detalles?

¡Gracias! @pedrosnk

@laurenzlong gracias por comprobar. Fue mi culpa. Había movido solo algunos de los archivos de Firebase a otro directorio, lo que provocó esto. Hacer un inicio limpio funcionó muy bien. https://stackoverflow.com/questions/45935600/firebase-cannot-understand-what-targets-to-deploy

En firebase init CLI, alguien que ve corchetes ( ) puede pensar que imita el botón de opción, por lo que elige una opción y presiona Enter. En cambio, sugiero corchetes [ ] que sugieren opciones múltiples (casillas de verificación).

También tenía un archivo firebase.json vacío debido a que presioné Enter y perdí Espacio.
No he leído las instrucciones porque sabía que tenía que elegir la opción "Alojamiento".

"ignore": [
  "firebase.json",
  "**/.*",
  "**/node_modules/**"
]

// Evite el etra ',' después del corchete sqr a menos que tenga un argumento para ir allí

También presioné enter en lugar de espacio. Supongo que no es un problema funcional, pero de hecho es un problema de usabilidad.

@lelong88 Creo que eso le pasaría la primera vez a mucha gente.

firebase está buscando por defecto en la carpeta 'pública' el archivo 'index.html'.

si en angular4, por ejemplo, el 'index.html' existe en la carpeta 'dist', debe ingresar a 'firebase.json' y pegarlo allí:

{
"alojamiento": {
"público": "distrito"
}
}

esto es dirigir la base de fuego para buscar 'index.html' en la carpeta 'dist' o lo que sea que se llame a la carpeta en lugar de 'público'.
de núcleos tienes que tu archivo se llama 'index.html'.

después:

firebase deploy

probablemente funcionará

¡trabajó para mi!

¿Espacio para seleccionar características? ¿Estas drogado?

ahahahah uso de un espacio? LMAO.
Bien, ahora entiendo por qué tengo un archivo vacío. ¯_(ツ)_/¯

[depuración] [2018-06-03T15:18:34.367Z] ----------------------------------- --------------------------------------------------
[depuración] [2018-06-03T15:18:34.371Z] Comando: C:\Program Files\nodejs\node.exe C:\Users\pushpendraPC\AppData\Roaming\npm\node_modules\firebase-toolsbinfirebase init MyAssignMent
[depuración] [2018-06-03T15:18:34.371Z] Versión CLI: 3.18.5
[depuración] [2018-06-03T15:18:34.371Z] Plataforma: win32
[depuración] [2018-06-03T15:18:34.372Z] Versión del nodo: v10.3.0
[depuración] [2018-06-03T15:18:34.373Z] Hora: dom 03 de junio de 2018 20:48:34 GMT+0530 (hora estándar de India)
[depurar] [2018-06-03T15:18:34.373Z] ----------------------------------- --------------------------------------------------
[depurar]
[debug] [2018-06-03T15:18:34.388Z] > el comando requiere ámbitos: ["email","openid","https://www.googleapis.com/auth/cloudplatformprojects.readonly","https: //www.googleapis.com/auth/firebase"]
[depuración] [2018-06-03T15: 18: 34.389Z]> autorizando a través del usuario registrado
[información]
######## #### ######## ######## ######## ### ###### ##### ###
## ## ## ## ## ## ## ## ## ## ##
###### ## ######## ###### ######## ######### ###### ##### #
## ## ## ## ## ## ## ## ## ## ##
## #### ## ## ######## ######## ## ## ###### ########

Está a punto de inicializar un proyecto de Firebase en este directorio:

C:\Users\pushpendraPC\Desktop\project\NewAsignMentDeploy\AssignMent\src

Antes de comenzar, tenga en cuenta:

  • Está inicializando en un directorio de proyecto de Firebase existente

[información]
=== Configuración del proyecto
[información]
[info] Primero, asociemos este directorio de proyecto con un proyecto de Firebase.
[info] Puede crear múltiples alias de proyecto ejecutando firebase use --add,
[info] pero por ahora solo configuraremos un proyecto predeterminado.
[información]
[depuración] [2018-06-03T15:18:36.584Z] >>> SOLICITUD HTTP OBTENER https://admin.firebase.com/v1/projects

Dom 03 de junio de 2018 20:48:36 GMT+0530 (hora estándar de India)
[depuración] [2018-06-03T15:18:38.115Z] <<< RESPUESTA HTTP 200
[info] i .firebaserc ya tiene un proyecto predeterminado, omitiendo
[información]
=== Configuración de mi tarea
[depuración] [2018-06-03T15: 18: 38.543Z] TypeError: características [nextFeature] no es una función
en init (C:\Users\pushpendraPC\AppData\Roaming\npm\node_modules\firebase-toolslib\init\index.js:13:49)
en C:\Users\pushpendraPC\AppData\Roaming\npm\node_modules\firebase-toolslib\init\index.js:14:14
en proceso._tickCallback (interno/proceso/next_tick.js:68:7)
[error]
[error] Error: Ha ocurrido un error inesperado.

mostrar error cuando ejecuto cmd firebase init

Hola,
Debajo había un error en el navegador.

Página no encontrada
Este archivo no existe y no se encontró index.html en el directorio actual o 404.html en el directorio raíz.

¿Por qué estoy viendo esto?
Es posible que haya implementado el directorio incorrecto para su aplicación. Verifique su firebase.json y asegúrese de que el directorio público apunte a un directorio que contenga un archivo index.html.

También puede agregar un 404.html en la raíz de su sitio para reemplazar esta página con una página de error personalizada.

* * * * * Línea de comando * * * * * *
despliegue de base de fuego

=== Implementando en 'organicshop-18573'...

estoy implementando hosting
i hosting: preparando el directorio dist para subir...
⚠ Advertencia: el directorio público no contiene index.html
✔ alojamiento: 7 archivos cargados con éxito

✔ ¡Despliegue completo!
* * * * Firebase.Json * * * * * **

{
"alojamiento": {
"público": "distrito",
"ignorar": [
"firebase.json",
" /. "," /node_modules/ "],"reescribe": [{"fuente": " ",
"destino": "/index.html"
}
]
}
}
* * Estructura de carpetas * * **
En la carpeta dist tenía index.html. Pero cuando intento implementarlo, aparece como "El archivo no existe y no había index.html.

escriba ng build y luego escriba firebase deployment

base de fuego mala

Este problema original parece estar solucionado. Como no ha habido actividad reciente, voy a cerrar esto.

Si alguien tiene problemas adicionales con firebase.json , ¡abra un nuevo problema con la información adecuada!

He seguido las soluciones proporcionadas pero no han resuelto mi problema.

la página no obtiene los datos, está en blanco, pero el ícono favorito está cargado. que frio sera el tema

¿Fue útil esta página
0 / 5 - 0 calificaciones