No se puede hacer referencia a la carpeta pública de la implementación de node.js con firebase

Después de ver las aplicaciones Node.js en Firebase Hosting , intenté crear un proyecto con Polymer y NodeJs / express y firebase hosting.
En el video vinculado se muestra que firebase serviría por defecto al archivo estático público / index.html, razón por la cual lo eliminan para luego servir uno dynamic. Sin embargo, este archivo en particular se encuentra en el mismo directorio de funciones y ya no se encuentra en la carpeta pública.

¿Esto significa que todo mi proyecto debe ubicarse en la carpeta de funciones o solo en el punto de entrada de la aplicación? No puedo enviar un archivo que se encuentra en mi carpeta pública como se muestra a continuación.

  • proyecto
    • funciones
      • server.js
    • público
      • index.html

app.get('*', (req, res) => { res.sendFile(path.join(__dirname, '/public/index.html')); }) 

Creo que Firebase aloja al público y la carpeta de funciones de forma diferente o ¿estoy haciendo una referencia simplemente equivocada?

Deberá anidar su carpeta public dentro de la carpeta de functions para poder hacer referencia a los archivos de ella en sus funciones. Puede hacer esto simplemente cambiando la configuración public en firebase.json para que sea, por ejemplo, functions/public y luego mueva el directorio dentro de las functions .

Entonces podrías hacer algo como lo que estás describiendo.

Creo que no es necesario mover toda la carpeta pública a la carpeta de funciones. Puedes usar el camino relativo así

 app.get('*', (req, res) => { res.sendFile( './../public/index.html')); }) 

Funcionó para mí … prueba esto.