AngularFire检查值是否存在,如果不存在,则创建它

AngularFire检查值是否存在,如果不存在,则创建它,angular,firebase-realtime-database,ionic3,angularfire,angularfire5,Angular,Firebase Realtime Database,Ionic3,Angularfire,Angularfire5,我是AngularFire的新手,在升级到AngularFire5之后,我遇到了一些问题。我想创建一个“房间”,这个房间将有一个id:name,所以在用户输入名称后,我会检查数据库是否存在这个名称,如果不存在,我会创建。我正在添加InfoMessages以指定是否创建了文件室 这是我的密码: checkIfRoomExistAndCreate(salaName: string, puntuacio: number){ this.items = this.afDB.list("/game/

我是AngularFire的新手,在升级到AngularFire5之后,我遇到了一些问题。我想创建一个“房间”,这个房间将有一个id:name,所以在用户输入名称后,我会检查数据库是否存在这个名称,如果不存在,我会创建。我正在添加InfoMessages以指定是否创建了文件室

这是我的密码:

checkIfRoomExistAndCreate(salaName: string, puntuacio: number){
    this.items = this.afDB.list("/game/" + salaName).valueChanges();
    this.items.subscribe((x) => {
        if (x.length === 0) {
            this.createNewGame(salaName, puntuacio);
        } else {
            console.log('This room already exists');
        };
    })
}
如果存在同名房间,则检查问题一次,创建房间后,再次检查并显示错误消息


那么,我如何告诉被观察者,一旦被创造,它就必须停止

插入数据后,您可以在
createNewGame
功能中取消订阅

this.afDB.list("/game/" + salaName).set("player1", this.player1.name);
this.items.unsubscribe();

createNewGame()中的内容噢,对不起,是对push的调用:
this.afDB.list(“/game/”+salaName).set(“player1”,this.player1.name)我的项目是可观察的,并尝试取消订阅();不作为选项出现。是的,在这个示例中,有一个类似于我的问题,他们所做的是将订阅保存在一个变量中,然后,这个变量可以取消订阅。顺便说一句,为什么angularfire上不再有.first()方法?你说的.first()是什么意思?