Запрос Firebase не работает должным образом - PullRequest
0 голосов
/ 01 января 2019

У меня есть запрос, основанный на нескольких предложениях WHERE, и он возвращает true, если найден, и удаляет запись, и false, если нет.Проблема в том, что он добавляет новую запись в базу данных, но автоматически удаляет ее впоследствии.При комментировании удаляемой части она работает как положено, добавляя новую запись, только если ее нет.

Это мой код:

var found = false;
firebase.database().ref(`/yums/`)
        .orderByChild('recipeId').equalTo(uid)
        .on('value', snapshot => {
            const likes = snapshot.val();
            for (var like in likes) {
                if (likes[like].userId == currentUser.uid) {
                    found = true;
                    firebase.database().ref(`/yums/`)
                        .child(like).remove();
                }
            }
        })

if (found == false ) {
        firebase.database().ref(`/yums/`)
            .push({ 
                recipeId: uid, 
                userId: currentUser.uid,
                timestamp: Date.now(),
            })
            .then(() => {
                dispatch({ type: YUMMED_SUCCESS });
            });
}

1 Ответ

0 голосов
/ 01 января 2019

пришлось заменить .on на .once и поместить оператор if found в блок .then ()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...