我是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'));
});
}
}
答案 0 :(得分:0)
解决了
this.afdb.list(`user`).update(auth.uid, this.user)