2

我是 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');
        };
    })
}

问题是检查一次是否有同名房间,创建后再次检查并显示错误消息。

那么,我如何告诉 observable 一旦创建就必须停止?

4

1 回答 1

0

插入数据后,您可以在createNewGame函数内部取消订阅,

this.afDB.list("/game/" + salaName).set("player1", this.player1.name);
this.items.unsubscribe();
于 2017-10-22T17:59:23.023 回答