我正在开发一款多人游戏,所以我想创建一个配对功能来连接随机对手。
所以我在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匹配和匹配的用户是相同的。但是当我导入匹配数据库时,您可以看到用户buck3在匹配的数据库中重复三次。
我该如何解决这个问题。需要帮助..