Activar HTTP seguro para las funciones de la nube para Firebase

¿Hay alguna manera de verificar si un usuario está autorizado por la base de fuego antes de activar una función en la nube? (O dentro de la función)

Sí. Deberá enviar el token de Id. De Firebase junto con la solicitud (por ejemplo, en el encabezado Authorization de una solicitud de AJAX) y luego verificarlo mediante el SDK de administración de Firebase. Hay un ejemplo detallado en el repository de muestras de Cloud Functions for Firebase. Se ve algo como esto (hecho más corto para la publicación SO):

 const functions = require('firebase-functions'); const admin = require('firebase-admin'); const cors = require('cors')(); const validateFirebaseIdToken = (req, res, next) => { cors(req, res, () => { const idToken = req.headers.authorization.split('Bearer ')[1]; admin.auth().verifyIdToken(idToken).then(decodedIdToken => { console.log('ID Token correctly decoded', decodedIdToken); req.user = decodedIdToken; next(); }).catch(error => { console.error('Error while verifying Firebase ID token:', error); res.status(403).send('Unauthorized'); }); }); }; exports.myFn = functions.https.onRequest((req, res) => { validateFirebaseIdToken(req, res, () => { // now you know they're authorized and `req.user` has info about them }); });