Загрузите фотографию и установите ее как фотографию профиля - Angular 5 + Firebase - PullRequest
0 голосов
/ 15 ноября 2018

Я создал метод для загрузки фотографии и установки ее в качестве фотографии профиля пользователя. Он работает локально , но не устанавливает его в базе данных, поэтому, когда я обновляю веб-страницу, изменения исчезают.

Компонент Из компонента я загружаю фотографию в FireBase, я получаю ссылку и показываю ее с помощью HTML (работает)

  //Upload a new picture to the database as a profile picture
  uploadProfilePicture(event) {
    const id = this.auxAuth.uid + "_updatedPhoto";
    this.ref = this.afStorage.ref(id);
    this.task = this.ref.put(event.target.files[0]);
    this.downloadURL = this.task.downloadURL();
    let user = firebase.auth().currentUser;
    this.authService.updateProfilePicture(user, this.downloadURL);
  }

Услуга Из службы я пытаюсь сделать то же самое в firebase, но он не работает

//Update the user's profile picture
  updateProfilePicture(user, url) {
    user
      .updateProfile({
        photoURL: url.value
      })
      .then(res => {
        this.flashMessage.show("UpdatedProfilePicture", {
          cssClass: "alert-success",
          timeout: 3000
        });
      })
      .catch(function(error) {
        this.flashMessage.show(error, {
          cssClass: "alert-danger",
          timeout: 3000
        });
      });
  }

Полагаю, мне не хватает этого действия в then, но я не совсем понимаю, как мне это сделать

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