使用Firebase进行配对

时间:2018-03-08 19:39:20

标签: javascript firebase google-cloud-functions

我正在开发一款多人游戏,所以我想创建一个配对功能来连接随机对手。

所以我在Firebase云功能中为tesitng编写了以下基本功能,

exports.matchUser = functions.database.ref('/match/{user}/{id}').onWrite((event) => {
    var user = event.params.user;
    db.ref("matching").limitToFirst(1).once("value" , function(snap) {
        if(snap.exists()){
            snap.forEach(function(userSnap){
                console.log(userSnap.key);
                var opp = userSnap.key;
                var key = db.ref("matched").push().key;
                console.log(key);
                db.ref("matching").child(opp).remove();
                db.ref("matched").child(key).child(user).set(opp);
            })
        }else{
            db.ref("matching").child(user).set(true);
        }
    });
});

然后将一些虚拟用户添加到匹配的数据库中。

当我逐个添加数据以匹配db时,它工作正常。

但是,当我使用Firebase控制台上的导入功能快速添加多个数据时,有时会重复匹配的用户。

db example

db匹配和匹配的用户是相同的。但是当我导入匹配数据库时,您可以看到用户buck3在匹配的数据库中重复三次。

我该如何解决这个问题。需要帮助..

0 个答案:

没有答案