Я новичок в использовании Firebase, поэтому все советы приветствую.
Чего я пытаюсь достичь?
Я хочу создать проигрыватель, только если пользователь не превысил размер своей команды ("numberOfplayersLimit"). Итак, в настоящее время я использую транзакцию firebase, которая сначала проверяет, не превысила ли команда свой лимит «numberOfPlayers», если команда не превысила свой лимит, увеличиваю счетчик «numberOfplayersLimit» и затем добавляю игрока в базу данных, как показано ниже.
В чем моя проблема
В настоящее время я использую .push()
для добавления игроков, однако он создает игрока дважды, как показано ниже, поскольку вы можете видеть полное имя то же самое в других записях, но у них разные uid.
Ниже приведен снимок экрана из моей базы данных Firebase в реальном времени JSON структура
var myUserId = firebase.auth().currentUser.uid;
const playerData = {
fullName:this.state.fullName,
};
//This is where the players are stored
const teamplayersref = firebase.database().ref('/teams').child(myUserId).child('/players')
//Transaction - Team reference path for the TeamPlayers Limit
const getTeamPlayersLimit = firebase.database().ref('/teams').child(myUserId).child('numberOfplayersLimit');
getTeamPlayersLimit.transaction(function(numberOfplayersLimit){
if (numberOfplayersLimit == 11) {
alert('You have exceed your team size limit, Delete a player from your team or contact us to upgrade your package');
}
else
{
//increment teamplayers limit
numberOfplayersLimit = numberOfplayersLimit + 1;
teamplayersref.push(playerData);
return numberOfplayersLimit;
}
});