我正在使用Nuxt、vuifire和nuxt-vuifire尝试在Web应用程序中启用电子邮件和密码验证。我已经安装了所有的软件包,并且能够访问firebase中未受保护的路径,一切都按预期工作。然而,当尝试访问firebase auth sdk时,我没有得到一个带有处理身份验证情况的属性的auth对象。我已经将nuxt配置为使用firebase身份验证:
export default defineNuxtConfig({
...
modules: [
'nuxt-vuefire'
],
vuefire: {
auth: true,
config: {
apiKey: "...",
authDomain: "...",
projectId: "...",
storageBucket: "...",
messagingSenderId: "...",
appId: "...",
measurementId: "..."
},
admin: {
serviceAccount: '...json',
}
}
}
然后我尝试在登录中使用useFirebaseAuth()
。pages目录中的vue组件如下:
<script setup>
const auth = useFirebaseAuth()
const email = ref('')
const password = ref('')
const login = () => auth.signInWithEmailAndPassword(email, password)
const create = () => auth.createUserWithEmailAndPassword(email, password)
</script>
当点击登录或注册,我得到的错误
signInWithEmailAndPassword不是函数
我找不到任何文件说明我遗漏了哪一步。我错过了什么?
2条答案
按热度按时间gojuced71#
因此,代码存在几个问题。
1.没有auth这样的方法。signInWithEmailAndPassword对于firebase 9,你通过signInWithEmailAndPassword(auth,email,password)来做,看起来你正在使用新版本。请参阅firebase docs。
1.电子邮件,密码都是参考,所以电子邮件。值、密码。价值
请使用Typescript,这些问题本可以避免。
rta7y2nd2#
我也遇到了这个问题。在我看来,vuefire必须提供例如signInWithEmailAndPassword的功能-但似乎他们没有。
所以我们必须在vuefire导入之外使用“plain firebase”。有点奇怪。.