当我只想传递字符串时(Angular 5 AND FIREBASE),角反应形式使对象成为对象

时间:2018-08-10 10:52:12

标签: javascript angular typescript firebase angular-reactive-forms

因此,我正在创建一个表单,人们可以将个人资料图片上传到Firebase。我希望它像profile_image_url: 'urlstringvalue'一样上传。但是它是这样上传的:

enter image description here

这就是我创建表单的方式:

  ngOnInit() {
this.signUpFormGroup = this._formBuilder.group({
  profile_image_url: ''
});

} 和html:

<form [formGroup]="signUpFormGroup">
            <div class="form_input" >
              <label for="invoice-upload" class="bold-800 document-upload text-center"
                     *ngIf="!signUpFormGroup.get('profile_image_url').value">+<br>
                <div class="upload text-center">upload</div>
                <input formGroupName="profile_image_url"  (change)="uploadProfileImage($event)" type="file" class="input-file" id="invoice-upload">
              </label>
              <img
                [src]="signUpFormGroup.get('profile_image_url').value" alt="" class="document-image">
            </div>
          </form>

我这样存储网址:

  uploadProfileImage(file) {
    this._storage.uploadFile(file, `user/${this._auth.currentUserId}/profile`)
      .subscribe(() => {
        this._storage.downloadURL.subscribe(url => {
          this.signUpFormGroup.get('profile_image_url').patchValue(url);
        });
      });
  }

,然后按如下所示最后上传到firebase数据库:

setProfileImageAndGender(profile_image_url: string) {
    return fromPromise(this.afs.collection('users').doc(this.userDb.uid)
      .update({
         profile_image_url,
      }, ));
  }

任何人都知道为什么它创建对象而不是仅传递字符串吗?

0 个答案:

没有答案