![](/img/trans.png)
[英]firebase functions deploy error : ERR_PACKAGE_PATH_NOT_EXPORTED
[英]Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" - Firebase
通过此全栈 React 和 Firebase 教程并尝试使用 Firebase 身份验证来创建新用户,我收到以下错误。
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in /socialapp-functions/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> (/socialapp-functions/functions/index.js:17:18)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
⚠ We were unable to load your functions code. (see above)
本教程详细代码如下:
// 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,
};
firebase
.auth()
.createUserWithEmailAndPassword(newUser.email, newUser.password)
.then((data) => {
return res
.status(201)
.json({ message: `user ${data.user.uid} signed up successfully` });
})
.catch((err) => {
console.error(err);
return res.status(500).json({ error: err.code });
});
});
根据这里的问题和答案,我认为问题在于当我运行 Firebase@9 时,本教程有 Firebase@8 的代码。
引用 Firebase Admin SDK 文档来管理用户,我正在使用
const admin = require("firebase-admin");
代替
const firebase = require("firebase");
我将代码更新为以下内容,现在可以在 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 });
});
});
使用这些版本,它可以工作! 降级/升级这些依赖项以匹配 <package.json> 中的以下内容
"dependencies": {
"firebase": "^8.10.0",
"firebase-admin": "^8.13.0",
"firebase-functions": "^3.14.1"
},
只需在您的 node_modules 中安装xhr2 ,然后使用 firebase -admin而不是 firebase 然后尝试。
2022 年 6 月
在节点 js
我所有问题的永久解决方案是卸载 firebase v9+
接下来我做了:
npm uninstall firebase
然后
npm i firebase@8.6.8
希望这也能解决您的问题
编辑:在此之后你也不需要 firebase-admin
使用 Firebase SDK 执行此操作的方式已随新版本 9更改。
代替
const firebase = require("firebase");
firebase
.auth()
.createUserWithEmailAndPassword(newUser.email, newUser.password)
.then((data) => {
return res
.status(201)
.json({ message: `user ${data.user.uid} signed up successfully` });
})
做这个
const { getAuth, createUserWithEmailAndPassword } = require( "firebase/auth");
const auth = getAuth();
createUserWithEmailAndPassword(auth, email, password)
.then((data) => {
return res
.status(201)
.json({ message: `user ${data.user.uid} signed up successfully` });
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.