Прочитав так много постов и пустых (или нет?) Решений, я понял, что лучше всего было бы публиковать свои собственные. Так что моя цель - просто получить displayName пользователя, чтобы в списке постов или где-то еще авторство не выглядело безобразно с помощью uid ... Вот что я считаю уместным для проблемы:
Форма реагирования регистрации Позже вызывается onInit:
createForm() {
this.registerForm = this.fb.group(
{
name: ['', Validators.required],
email: ["", [Validators.required]],
password: [null, [Validators.required, Validators.minLength(5)]],
retype: ["", Validators.required]
},
{
validator: PasswordValidators.passwordsShouldMatch
}
);
}
Метод отправки:
onSubmit() {
if (this.registerForm.invalid) return;
this.registered = true
this.authService.registerUser(this.email.value, this.password.value).then(data=>{
console.log(data)
})
}
AuthService, вызывающий uid и метод регистра:
constructor( private afAuth: AngularFireAuth, private router: Router) {
this.afAuth.authState.subscribe(user=>{
this.userId = user.uid;
})
}
registerUser(email:string, password:string) {
return this.afAuth.auth.createUserWithEmailAndPassword(email, password)
.then((result) => {
this.router.navigate(['/login']);
console.log(result.user)
}).catch((error) => {
window.alert(error.message)
})
}
При регистрации этого строка this.afAuth.authState.subscribe(user=>{
this.userId = user.uid;
, фактически регистрирующая пользователя, я могу видеть весь объект и displayName, но так как метод register принимает только 2 аргумента, электронную почту и передачу, как мне обойти это? Я пробовал упор, связанный с updateprofile, но застрял на ошибке ... Есть ли решение? Спасибо