angularfire设置/更新用户数据库

时间:2018-02-02 13:32:16

标签: typescript firebase firebase-realtime-database firebase-authentication angularfire2

我是Angular的新手 我有一个页面供用户编辑他们的个人资料信息。 我遇到.set()和.update()的问题,但是在使用.push()时工作正常。

修改-profile.html     

  <ion-navbar color="primary">
    <ion-title>Edit Profile</ion-title>
  </ion-navbar>

</ion-header>


<ion-content padding>
  <ion-item>
    <ion-input floating placeholder="User name" [(ngModel)]="user.username"></ion-input>
  </ion-item>

  <ion-item>
    <ion-input floating placeholder="age" [(ngModel)]="user.age"></ion-input>
  </ion-item>

  <button ion-button clear block (click)="saveProfile()">Save</button>
</ion-content>

修改-profile.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';
import { User } from '../../models/user/user.model';
import { AngularFireDatabase } from 'angularfire2/database';

@IonicPage()
@Component({
  selector: 'page-edit-profile',
  templateUrl: 'edit-profile.html',
})
export class EditProfilePage {

  user = {} as User;

  constructor(public navCtrl: NavController,
    public navParams: NavParams,
    private afAuth: AngularFireAuth,
    private afdb: AngularFireDatabase) { }

  saveProfile(user: User) {

    this.afAuth.authState.take(1).subscribe(auth => {
      this.afdb.list(`user/${auth.uid}`).push(this.user)
        .then(() => this.navCtrl.setRoot('TabsPage'));
    });
  }

}

enter image description here

  • node v.8.94
  • npm 5.6.0
  • cordova@8.0.0
  • ionic@3.19.1
  • rxjs@5.5.6
  • angularfire2@5.0.0-rc.6
  • firebase@4.9.0

1 个答案:

答案 0 :(得分:0)

解决了

this.afdb.list(`user`).update(auth.uid, this.user)