Firebase v8 - 如何在“firebase.default.auth”未定义时访问 EmailAuthProvider
Firebase v8 - how to access EmailAuthProvider when `firebase.default.auth` is undefined
我在 Ionic-Angular 项目上使用 AngularFire2
的 Firebase 身份验证。我需要能够在需要时重新验证我的用户,似乎唯一的方法是获取用户的凭据,这只能通过 firebase.auth.EmailAuthProvider
获得,一个不属于 AngularFire
,但仅限于 firebase
本身。
我为此使用 firebase v8,EmailAuthProvider
对象应该在 firebase.default.auth.EmailAuthProvider
中找到。但是,我发现 firebase.default.auth
未定义,因此无法访问 EmailAuthProvider
。我找到的唯一解决方案是恢复到 firebase v7,后者可以通过 firebase.auth.EmailAuthProvider
成功访问。由于其他兼容性问题,我还不能升级到 firebase v9,也不想保留 v7,因为它给我带来了很多高和中等漏洞。
编辑
我以这种方式获取凭据:
import * as firebase from "firebase/app";
...
firebase.default.auth.EmailAuthProvider.credential(email, password)
我收到以下错误:
Uncaught TypeError: Cannot read properties of undefined (reading 'EmailAuthProvider')
我的 package.json 文件有 "@angular/fire": "^6.1.5"
和 "firebase": "^8.10.0"
TLDR
在 Firebase v8 中,如何访问 EmailAuthProvider
,或者更一般地说,如何重新验证用户?
尝试如下所示更改您的导入:
import firebase from "firebase/app";
import "firebase/auth" // <-- make sure you have auth imported
然后像这样访问 EmailAuthProvider:
firebase.auth.EmailAuthProvider.credential(email, password)
我在 Ionic-Angular 项目上使用 AngularFire2
的 Firebase 身份验证。我需要能够在需要时重新验证我的用户,似乎唯一的方法是获取用户的凭据,这只能通过 firebase.auth.EmailAuthProvider
获得,一个不属于 AngularFire
,但仅限于 firebase
本身。
我为此使用 firebase v8,EmailAuthProvider
对象应该在 firebase.default.auth.EmailAuthProvider
中找到。但是,我发现 firebase.default.auth
未定义,因此无法访问 EmailAuthProvider
。我找到的唯一解决方案是恢复到 firebase v7,后者可以通过 firebase.auth.EmailAuthProvider
成功访问。由于其他兼容性问题,我还不能升级到 firebase v9,也不想保留 v7,因为它给我带来了很多高和中等漏洞。
编辑
我以这种方式获取凭据:
import * as firebase from "firebase/app";
...
firebase.default.auth.EmailAuthProvider.credential(email, password)
我收到以下错误:
Uncaught TypeError: Cannot read properties of undefined (reading 'EmailAuthProvider')
我的 package.json 文件有 "@angular/fire": "^6.1.5"
和 "firebase": "^8.10.0"
TLDR
在 Firebase v8 中,如何访问 EmailAuthProvider
,或者更一般地说,如何重新验证用户?
尝试如下所示更改您的导入:
import firebase from "firebase/app";
import "firebase/auth" // <-- make sure you have auth imported
然后像这样访问 EmailAuthProvider:
firebase.auth.EmailAuthProvider.credential(email, password)