0

I'm developing a simple web app usage firebase-admin on next.js(SSR).

Then follow a tutorial to try to build on Firebase Functions.

However, it is not going smoothly that keeps returning error messages.

My dependencies:

"firebase-admin": "^11.0.1",
"firebase-functions": "^3.22.0",
"next": "12.2.5",
"react": "18.2.0"

and node version is v16.15.1

The first error is

./node_modules/firebase-admin/lib/app/lifecycle.js
Module not found: Can't resolve 'fs' in '/Users/a/Desktop/project/node_modules/firebase-admin/lib/app'

Import trace for requested module:
./node_modules/firebase-admin/lib/app/firebase-namespace.js
./node_modules/firebase-admin/lib/default-namespace.js
./node_modules/firebase-admin/lib/index.js
./node_modules/firebase-functions/lib/apps.js
./node_modules/firebase-functions/lib/index.js
./pages/function.js

and I solved it after the following code was added to next.config.js

  webpack: config => {
    config.resolve = {
      ...config.resolve,
      fallback: {
        fs: false,
        path: false,
        os: false,
        child_process: false,
        net: false,
        tls: false,
      },
    };
    return config;
  },

The second error is

./node_modules/firebase-admin/lib/app/firebase-namespace.js
Module not found: Package path ./standalone is not exported from package /Users/a/Desktop/project/node_modules/@firebase/database-compat (see exports field in /Users/a/Desktop/project/node_modules/@firebase/database-compat/package.json)

Import trace for requested module:
./node_modules/firebase-admin/lib/default-namespace.js
./node_modules/firebase-admin/lib/index.js
./node_modules/firebase-functions/lib/apps.js
./node_modules/firebase-functions/lib/index.js
./pages/function.js

./node_modules/firebase-admin/lib/database/database.js
Module not found: Package path ./standalone is not exported from package /Users/a/Desktop/project/node_modules/@firebase/database-compat (see exports field in /Users/a/Desktop/project/node_modules/@firebase/database-compat/package.json)

Import trace for requested module:
./node_modules/firebase-admin/lib/database/index.js
./node_modules/firebase-admin/lib/app/firebase-namespace.js
./node_modules/firebase-admin/lib/default-namespace.js
./node_modules/firebase-admin/lib/index.js
./node_modules/firebase-functions/lib/apps.js
./node_modules/firebase-functions/lib/index.js
./pages/function.js

./node_modules/firebase-admin/lib/database/index.js
Module not found: Package path ./standalone is not exported from package /Users/a/Desktop/project/node_modules/@firebase/database-compat (see exports field in /Users/a/Desktop/project/node_modules/@firebase/database-compat/package.json)

Import trace for requested module:
./node_modules/firebase-admin/lib/app/firebase-namespace.js
./node_modules/firebase-admin/lib/default-namespace.js
./node_modules/firebase-admin/lib/index.js
./node_modules/firebase-functions/lib/apps.js
./node_modules/firebase-functions/lib/index.js
./pages/function.js

I found that it is not a common issue, but I'm no idea to solve it.

Is it a version problem? How can make me to deploy successfully? Thanks.

inu
  • 1
  • 1
  • You should not use `firebase-admin` in client-side code. Can you show us the `/pages/function.js` file? – juliomalves Sep 04 '22 at 12:21
  • Thanks. Is it used in getServerSideProps also not? Here is the function.js. `const { https } = require("firebase-functions"); const { default: next } = require("next"); const isDev = process.env.NODE_ENV !== "production"; const server = next({ dev: isDev, conf: { distDir: ".next" }, }); const nextjsHandle = server.getRequestHandler(); exports.nextServer = https.onRequest((req, res) => { return server.prepare().then(() => nextjsHandle(req, res)); }); ` – inu Sep 05 '22 at 02:47
  • That doesn't look like a page component. Are you sure you want that inside the `pages` folder? – juliomalves Sep 05 '22 at 06:34

0 Answers0