'firebase' npm package is used in Functions backend for .initializeApp(config) and .Auth().signInWithEmailAndPassword(email, password)
Firebase deploy/serve throws this error:
! Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in <project path>\functions\node_modules\firebase\package.json
at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)
at packageExportsResolve (internal/modules/esm/resolve.js:522:3)
at resolveExports (internal/modules/cjs/loader.js:449:36)
at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)
at Function.Module._load (internal/modules/cjs/loader.js:745:27)
at Module.require (internal/modules/cjs/loader.js:961:19)
at require (internal/modules/cjs/helpers.js:92:18)
at Object.<anonymous> (<project path>\functions\APIs\users.js:4:18)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
! We were unable to load your functions code. (see above)
at const firebase = require("firebase");
Re-installing firebase package, updating Node, npm and using 'firebase-admin' did not solve the issue. I'm very thankful if you can help.
The Firebase js sdk is for client-side use only. In order to interact with Firebase from your backend environment (ie cloud functions, node backend, etc), you must use the admin-sdk.
Keep in mind that since the admin-sdk runs in a secure, trusted environment, it has elevated privileges and will bypass security rules, so make sure you're validating your data in your functions.
You can view the full documentation for the admin-sdk here: Firebase Admin SDK