Получение одного пользователя из Firebase с Angular 8 - PullRequest
0 голосов
/ 18 февраля 2020

я изучаю 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

Я застрял с этой проблемой, поэтому, если кто-то может дать мне подсказку, это будет очень полезно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...