Jac*_*ood 7 node.js express firebase
在完成此完整堆栈 React 和 Firebase 教程并尝试使用 Firebase 身份验证来创建新用户时,我收到以下错误。
\nError [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /socialapp-functions/functions/node_modules/firebase/package.json\n    at throwExportsNotFound (internal/modules/esm/resolve.js:299:9)\n    at packageExportsResolve (internal/modules/esm/resolve.js:522:3)\n    at resolveExports (internal/modules/cjs/loader.js:449:36)\n    at Function.Module._findPath (internal/modules/cjs/loader.js:489:31)\n    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:875:27)\n    at Function.Module._load (internal/modules/cjs/loader.js:745:27)\n    at Module.require (internal/modules/cjs/loader.js:961:19)\n    at require (internal/modules/cjs/helpers.js:92:18)\n    at Object.<anonymous> (/socialapp-functions/functions/index.js:17:18)\n    at Module._compile (internal/modules/cjs/loader.js:1072:14)\n\xe2\x9a\xa0  We were unable to load your functions code. (see above)\nRun Code Online (Sandbox Code Playgroud)\n该教程详细介绍了这样的代码:
\n// Signup route\napp.post("/signup", (req, res) => {\n  const newUser = {\n    email: req.body.email,\n    password: req.body.password,\n    confirmPassword: req.body.confirmPassword,\n    handle: req.body.handle,\n  };\n\n  firebase\n    .auth()\n    .createUserWithEmailAndPassword(newUser.email, newUser.password)\n    .then((data) => {\n      return res\n        .status(201)\n        .json({ message: `user ${data.user.uid} signed up successfully` });\n    })\n    .catch((err) => {\n      console.error(err);\n      return res.status(500).json({ error: err.code });\n    });\n});\nRun Code Online (Sandbox Code Playgroud)\n
    Jac*_*ood 10
根据此处的问题和答案,我认为问题是当我运行 Firebase@9 时,教程中有 Firebase@8 的代码。
引用 Firebase Admin SDK 文档来管理用户,我正在使用
const admin = require("firebase-admin");
Run Code Online (Sandbox Code Playgroud)
代替
const firebase = require("firebase");
Run Code Online (Sandbox Code Playgroud)
我将代码更新为以下内容,现在可以在 POST 上成功添加用户。
// Signup route
app.post("/signup", (req, res) => {
  const newUser = {
    email: req.body.email,
    password: req.body.password,
    confirmPassword: req.body.confirmPassword,
    handle: req.body.handle,
    phone: req.body.phone,
    name: req.body.name,
    photoURL: req.body.photo,
  };
  admin
    .auth()
    .createUser({
      email: newUser.email,
      emailVerified: false,
      phoneNumber: newUser.phone,
      password: newUser.password,
      displayName: newUser.name,
      photoURL: newUser.photoURL,
      disabled: false,
    })
    .then((data) => {
      return res
        .status(201)
        .json({ message: `user ${data.uid} signed up successfully` });
    })
    .catch((err) => {
      console.error(err);
      return res.status(500).json({ error: err.code });
    });
});
Run Code Online (Sandbox Code Playgroud)
        2022年6月
在 Node.js 中
我所有问题的永久解决方案是卸载 firebase v9+
接下来我做了:
npm uninstall firebase
Run Code Online (Sandbox Code Playgroud)
然后
npm i firebase@8.6.8
Run Code Online (Sandbox Code Playgroud)
希望这也能解决您的问题
编辑:此后您也不需要 firebase-admin
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           20616 次  |  
        
|   最近记录:  |