Ошибка указана в заголовке.Firebase: Query.on failed: вызывается с 1 аргументом. Ожидается не менее 2
Приложение I I Building основано на React and Firebase. Я пытаюсь использовать обещания. Вот мой код:
gamesRef.on('value').then(function(snapshot){
// find all empty games
var gamesToRemove = [];
snapshot.forEach(game => {
if(game.val().player1 == ""
&& game.val().player2 == ""
&& game.val().player3 == ""
&& game.val().player4 == ""){
gamesToRemove.push(game.key());
}
});
return gamesToRemove;
}).then(function(gamesToRemove){
// remove all empty games
for(var index in gamesToRemove){
gamesRef.child(gamesToRemove[index]).remove();
}
}, function(error){
console.log(error);
});
this question on SO Я нашел, что адресованное тот же вопрос. Решение заключалось в том, что версия Firebase должна быть не менее 2,4 для использования обещаний. Я использовал более старую версию, но после обновления до 2.4.2 я все равно получаю ту же ошибку. Что мне делать?
Редактировать: Код после исправления. Get error "gamesRef.on (...), а затем не является функцией".
gamesRef.on('value', function(snapshot){
// find all empty games
var gamesToRemove = [];
snapshot.forEach(game => {
if(game.val().player1 == ""
&& game.val().player2 == ""
&& game.val().player3 == ""
&& game.val().player4 == ""){
gamesToRemove.push(game.key());
console.log("denna borde raderas: " + game.key());
}
});
return gamesToRemove;
}).then(function(gamesToRemove){
// remove all empty games
for(var index in gamesToRemove){
gamesRef.child(gamesToRemove[index]).remove();
}
});
Ok, спасибо! Я сделал, как вы сказали, и ошибка исчезла. Тем не менее, я получил новый: «gamesRef.on (...), а затем не является функцией». Вы знаете, как я это исправить? Я добавил обновление к вопросу. – hellogoodnight
Почему бы вам не пойти прямо и избежать «тогда»? 'gamesRef.on ('значение', функция (снимок) {// найти все пустые игры вар gamesToRemove = [];. snapshot.forEach (игра => { если (game.val() player1 = = "" && game.val(). Player2 == "" && game.val(). Player3 == "" && game.val(). Player4 == "") { gamesToRemove.push (игра .key());} }); для индекса (вар в gamesToRemove) { gamesRef.child (gamesToRemove [индекс]) удалить();. }; }); ' –