Vue Firebase firebase/auth 不工作,但 firebase/firestore 工作正常。 “身份验证不是函数”
Posted
技术标签:
【中文标题】Vue Firebase firebase/auth 不工作,但 firebase/firestore 工作正常。 “身份验证不是函数”【英文标题】:Vue Firebase firebase/auth not working but firebase/firestore works fine. "auth is not a function" 【发布时间】:2021-05-08 03:04:31 【问题描述】:知道为什么我的 auth 函数“不是函数”但我的 db 函数工作得很好吗?示例文件如下。
我在尝试调用 login() 方法时遇到的错误是
[Vue warn]: Error in created hook: "TypeError: _firebase__WEBPACK_IMPORTED_MODULE_2__.auth.auth is not a function"
使用 Vue 2 并通过 npm install firebase --save 安装 firebase。
src/firebase.js
import firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/auth';
const firebaseConfig =
apiKey: 'xx',
authDomain: 'xx',
databaseURL: 'xx',
projectId: 'xx',
storageBucket: 'xx',
messagingSenderId: 'xx',
appId: 'xx',
measurementId: 'xx',
;
firebase.initializeApp(firebaseConfig);
const db = firebase.firestore();
const auth = firebase.auth();
export db, auth ;
login.vue
import auth from '@/firebase';
login()
try
auth
.auth()
.signInWithEmailAndPassword(this.email, this.password)
.then(() =>
console.log(response);
)
.catch((error) =>
console.log(error);
);
catch (error)
console.log(error);
,
文档中的示例代码,运行良好
import db from '@/firebase';
var docRef = db.collection("cities").doc("SF");
docRef.get().then((doc) =>
if (doc.exists)
console.log("Document data:", doc.data());
else
// doc.data() will be undefined in this case
console.log("No such document!");
).catch((error) =>
console.log("Error getting document:", error);
);
【问题讨论】:
【参考方案1】:既然你这样做了
const auth = firebase.auth();
export db, auth ;
你不应该这样做
login()
try
auth
.auth()
.signInWithEmailAndPassword(this.email, this.password)
...
但是
login()
try
auth
.signInWithEmailAndPassword(this.email, this.password)
...
Firestore 运行良好,因为您正确地执行了 db.collection("cities").doc("SF");
而不是 db.firestore().collection("cities").doc("SF");
。
【讨论】:
天哪,我花了大约两个小时在这上面,并没有注意到这一点。我会在今天晚些时候回复它,完成后我会标记它已解决:) 谢谢!以上是关于Vue Firebase firebase/auth 不工作,但 firebase/firestore 工作正常。 “身份验证不是函数”的主要内容,如果未能解决你的问题,请参考以下文章
Vue 2;在“firebase/app”中找不到导出“默认”(导入为“firebase”)
Vue 2 和 Firebase 9 - 在 'firebase/firestore' 中找不到“导出 'getFirestore'
Vue + TypeScript + Firebase:如何键入包含 firebase `User` 的`ref` 的对象?