我试图通过电子邮件得到一个用户,这似乎是相当简单的。我在跟踪这个文档
我的代码似乎不认识admin,这是正常的,因为我没有在任何地方定义它。我所做的就是将admin改为firebase,作为防火墙:
import * as firebase from "firebase/app";守则是:
firebase.auth.getUserByEmail(participantEmail)但我得到了以下错误:
属性'getUserByEmail‘在’Auth‘..ts类型中不存在(2339)
我需要预先安装一些东西吗?我错过了什么吗?
我的目标是获取在我的系统上注册的所有用户的电子邮件列表,然后过滤它们,或者通过查看电子邮件直接访问特定的用户(第二个选项会更好)。
UPDATE现在我要在每次有人登录时创建一个用户列表,但是我认为防火墙在某种程度上限制了这些信息。
寄存器
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的值,没有任何问题。
发布于 2019-03-20 09:58:20
https://stackoverflow.com/questions/55257516
复制相似问题