Cordova 如何在firebase中的一个表下保存多个项目
这是我的.ts文件。保存项目时,它将替换上一个项目。我希望它有多个项目在一个不断增加的顺序Cordova 如何在firebase中的一个表下保存多个项目,cordova,firebase,firebase-realtime-database,ionic3,Cordova,Firebase,Firebase Realtime Database,Ionic3,这是我的.ts文件。保存项目时,它将替换上一个项目。我希望它有多个项目在一个不断增加的顺序 export class PostSermonPage { sermon = {} as Sermon; constructor( private afauth: AngularFireAuth, private afDatabase:AngularFireDatabase, public navCtrl: NavCo
export class PostSermonPage {
sermon = {} as Sermon;
constructor( private afauth: AngularFireAuth,
private afDatabase:AngularFireDatabase,
public navCtrl: NavController,
public navParams: NavParams) {}
createsermon(){
this.afauth.authState.take(1).subscribe(auth => {
this.afDatabase.object(`sermon/${auth.uid}`).set(this.sermon)
.then(()=>this.navCtrl.push('SermonPage'));
});
}
}
如何在firebase中的表中保存更多项目?在数据库中的某个位置上调用
set
时,它将替换该位置上的任何现有值
如果要在同一位置下添加新值,请使用push
在该位置下生成新的唯一子项。因此:
this.afDatabase.list(`sermon/${auth.uid}`).push(this.sermon)
.then(()=>this.navCtrl.push('SermonPage'));
这将在
salmon/${auth.uid}
下生成一个唯一的位置,其内容为This.salmon
我找到了解决方案。首先
this.afDatabase.object(`sermon/${auth.uid}`).set(this.sermon)
不应该是对象
然后设置
,而是列表
然后推送
如下:
this.afDatabase.list(`sermon`).push(this.sermon)
然后(sermon/${auth.uid}
)将在sermon下创建一个唯一Id,所有其他具有唯一Id的对象将保存在第一个唯一Id下
为了将所有对象保存在具有唯一Id的布道表下,我使用了以下代码
createsermon(){
this.afauth.authState.take(1).subscribe(auth => {
this.afDatabase.list(`sermon`).push(this.sermon)
.then(()=>this.navCtrl.push('SermonPage'));
});
}
当你说“按递增顺序”时,你是在自动递增你的帖子在数据库中保存时的唯一ID吗?是的。我的意思是,每个项目都使用唯一的id保存,并且不会被最近的内容所取代。谢谢@Frank Van Puffelen。除此之外,您的代码是正确的,而不是
。对象
我们需要使用列表
。你的回答帮助我找到了我使用的代码this.afDatabase.list(
sarmon).push(this.sarmon)。然后(()=>this.navCtrl.push('sarmonpage')代码>