javascript - Firebase v8 - 当`firebase.default.auth`未定义时如何访问EmailAuthProvider
问题描述
我AngularFire2
在 Ionic-Angular 项目中使用 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)
推荐阅读
- unix - 所有者可以在技术上运行 setuid 并且无法执行程序吗?
- sql - Python pymssql 选择序列号返回奇怪的值
- java - 如何借助 JasperReports API 获取 JasperReport 的 5.9.0 TextField 的拉伸高度?
- java - 如何在 Spring Security 方法身份验证中创建身份验证边界?
- mysql - 窗口函数查询问题?
- javascript - 循环设计改变了循环性能的 Javascript
- javascript - 如何使用带有 vanilla js 的视频 ID 提取 YouTube 视频标题?
- css - 问:是否可以在这种媒体查询方法中包含方向?
- amazon-web-services - AWS 负载均衡器到 EC2 实例防火墙规则
- java - 如何从我的 ArrayList 中检索评分最高的 10 条评论