推送后如何检索密钥? Firebase AngularFire

时间:2018-03-13 12:09:27

标签: angular typescript firebase firebase-realtime-database angularfire

目前在我的项目中,我将对象推送到特定ref中的firebase:

this.CoursesList = this.mydb.database.ref('/courses/' + this.CourseCategoryForm);
this.CoursesList.push(this.course);
this.Reference();

但我想同时把它推到别的地方。我读到,在Firebase中无法进行多重播放,因此我编写了函数Reference,它将根据其状态推送课程。

Reference(){
    if(this.CourseStatusDecision == 0){
        this.CoursesList = this.mydb.database.ref('/availableCourses/' + this.CourseCategoryForm);
    }else{
        this.CoursesList = this.mydb.database.ref('/currentSemester/');
    }
    this.CoursesList.set();
}

我的问题是我不想在另一个ref中再次推送整个对象(它通常用不同的键推送,是因为.push()本身会自动创建一个键吗?),我只想要键当我推动并将其设置在另一个参考中的课程时,这可能吗?如何?谢谢。

2 个答案:

答案 0 :(得分:1)

Angularfire将返回带有promise的引用。尝试

this.CoursesList = this.mydb.database.ref('/courses/' + this.CourseCategoryForm);
this.CoursesList.push(this.course).then(ref=>{
    console.log(ref.key);
    //pass the key to the function
    this.Reference(ref.key);
}

答案 1 :(得分:0)

你可以使用.key()函数

public void kodpTxt_PropertyChanged()
{
    //Do Something (get data from SqlServer and pass them to some UserControl controls
}