я изучаю Angular с месяца, и чтобы попрактиковаться в этом, я решил сделать сайт. Я настроил базу данных с помощью Firebase, где я сохраняю данные своих пользователей и знаю, что хочу дать пользователю возможность редактировать свои данные.
Чтобы быть более точным, я использую аутентификацию Firebase для создания учетной записи, и в этот момент я сохраняю UID, связанный с этой учетной записью, чтобы установить его в базе данных реального времени, с дополнительной информацией о пользователе который он предоставляет сразу после регистрации.
Для этого я устанавливаю uid, предоставленный Firebase, в базу данных, а затем я хочу дать текущему пользователю доступ к данным, где сохранен тот же uid, поэтому он может их редактировать.
Однако мне не удалось получить данные, соответствующие конкретному c пользователю. Вот код, который я попробовал:
ngOnInit() {
firebase.auth().onAuthStateChanged(
(user) => {
if (user) {
console.log(user.uid);
this.userService.getUserFromServer();
this.prenom = this.userService.getUserbyKey(user.uid).prenom;
this.nom = this.userService.getUserbyKey(user.uid).nom;
this.pseudo = this.userService.getUserbyKey(user.uid).pseudo;
this.ville = this.userService.getUserbyKey(user.uid).ville;
this.enfants = this.userService.getUserbyKey(user.uid).enfants;
this.hobbies = this.userService.getUserbyKey(user.uid).hobbies;
this.editForm = this.formBuilder.group({ edit: [], })
} else { console.log('No user connected') }
}
);
}
На основе этой модели: (ключ - user.uid, сгенерированный, когда пользователь создал свою учетную запись)
constructor(
public key: string,
public prenom: string,
public nom: string,
public pseudo: string,
public ville: string,
public enfants: string,
public hobbies?: string[]
) { }
Вот "getUserbyKey" Метод:
getUserbyKey(key: string) {
const singleUser = this.users.find(
(s) => {
return s.key === key;
}
);
return singleUser;
}
Но когда я пытаюсь получить доступ к странице, связанной с этим ngOnInit (), я всегда получаю эту ошибку:
Ошибка: «Uncaught (в обещании») ): TypeError: this.userService.getUserbyId (...) не определено
ngOnInit / <@ <a href="http://localhost:4200/main.js:1296:48" rel="nofollow noreferrer">http://localhost: 4200 / main. js: 1296: 48
Я застрял с этой проблемой, поэтому, если кто-то может дать мне подсказку, это будет очень полезно!