我正在努力获取AngularFire2中的authCredentials以重新验证用户的敏感方法,例如删除,密码更新,电子邮件更新等,我收到此错误:
'typeof auth'类型中不存在属性'AuthCredential'。
这是它的代码:
import { AngularFire } from 'angularfire2';
import * as firebase from 'firebase';
constructor(private af: AngularFire) { }
reauthenticated() {
this.af.auth.subscribe(user => {
const credential = firebase.auth.AuthCredential;
user.auth.reauthenticate(credential)
.then(() => { })
.catch(err => console.log(err));
});
}
好吧,实际上我发现你需要手动获取凭据,这是唯一的方法。您需要要求用户键入他的电子邮件和密码,或者只是输入密码,然后您从订阅AngularFire获得电子邮件,以便执行此方法,然后使用他的用户详细信息。
const credential = firebase.auth.EmailAuthProvider.credential(email, password);
user.auth.reauthenticate(credential);
我们遇到了一个需要使用EmailAuthProvider.credential(用户,传递)的问题,但是当我们尝试使用官方firebase软件包作为解决方法时,它会冻结我们的Ionic生产版本。然而,angularfire2包不会冻结我们的构建。这是Ionic与firebase软件包尚未修复的已知问题。
为了解决这个问题,我们最终创建了一个angularfire2的分支,它在AngularFireAuth对象上有一个emailAuthProviderCredential函数。它实际上只是一个传递,暴露firebase.auth.EmailAuthProvider.credential(user,pass)。
这是叉子:https://github.com/seed2spoon/angularfire2
因此,如果您绝对需要在angularfire2中创建凭据而不安装firebase包,请随意通过“npm install https://github.com/seed2spoon/angularfire2/releases/download/5.1.1-s2s/5.1.1-s2s.tar.gz”使用此fork