【发布时间】:2019-08-10 22:55:39
【问题描述】:
我正在尝试通过电子邮件获取用户,这似乎很简单。我正在关注这个documentation
我的代码似乎无法识别admin,这是正常的,因为我没有在任何地方定义。我所做的是将admin 更改为firebase,成为firebase:
import * as firebase from "firebase/app";
代码是:
firebase.auth.getUserByEmail(participantEmail)
但我收到以下错误:
类型'Auth'.ts(2339) 上不存在属性'getUserByEmail'
我需要预先安装一些东西吗?我错过了什么吗?
我的目标是获取在我的系统上注册的所有用户电子邮件的列表,然后过滤它们,或者通过查看电子邮件直接获取特定用户(第二个选项会更好)。
更新 现在我在每次有人登录时创建一个用户列表,但我认为 firebase 以某种方式限制了信息。
注册
registerUser(
email: string,
pass: string,
displayName: string,
photoURL: string
) {
return new Promise((resolve, reject) => {
this.afAuth.auth.createUserWithEmailAndPassword(email, pass).then(
user => {
resolve(user);
user.updateProfile({
displayName: displayName, // some displayName
photoURL: photoURL
});
//NEEDS TO BE INSIDE UPDATEPROFILE
this.insertUser(user);
},
err => {
this.s_registerError = err.message;
reject(err);
}
);
});
}
插入列表
//Insert a new bet
insertUser(user) {
console.log(user);
console.log(user.email);
console.log(user.displayName);
this.listToStore = this.db.list("users");
this.listToStore.push({
photoURL: user.photoURL,
email: user.email,
displayName: user.displayName
});
}
在这里,我在其所有字段中得到了user 的值,这意味着当我使用console.log(user) 时,我能够看到displayName、email 和photoURL。尽管如此,如果我尝试使用console.log(user.displayName) 打印null,如果我使用console.log(user.email) 打印它的值。
我认为这可能是因为user.updateProfile() 没有完成,但实际上,我在insertUser() 中得到user 的值没有任何问题
【问题讨论】:
-
只是为了确保:您在 nodejs 服务器上使用 admin-SDK,而不是在前端 Angular 项目中,对吗?
-
并非如此,我正试图让用户参与我的前端 Angular 项目。但我真的不知道该怎么做。我要做的是检查我的系统中是否注册了一封电子邮件
标签: angular typescript firebase firebase-authentication