How to get client IP Address in a Firebase Cloud Function
A simple Firebase Function to get the client IP Address based on the request.
Pre-requisites
npm i firebase-functions cors --save
Create a new function in your functions/src
directory.
import * as functions from "firebase-functions";
const {debug, log, info, warn, error } = functions.logger;
export const ipAddress = functions.https.onRequest( async( req, res ) => {
const cors = await import ('cors');
const corsHandler = cors({origin: true});
corsHandler(req, res, () => {});
if (req.method === 'OPTIONS') return;
let ipAddress = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
log( `Fetching client ipAddress`, ipAddress );
res.json( {ipAddress: ipAddress} );
} );