Обновление массива и вложенного объекта в базе данных реального времени firebase. - PullRequest
0 голосов
/ 18 июня 2020

После метода установки я хочу вызвать метод обновления, чтобы обновить некоторые конкретные поля в моей базе данных в реальном времени.

Database structure

На рисунке выше показана структура моей базы данных, когда приходит первый пользователь, он создается следующим образом. Код для этого упомянут ниже: -

async function userJoinContest(userId) {
    var count = 1000;
    var playersJoined = 0;
    const joiningFlag = await checkUserJoinContest(userId);
    // console.log("************", joiningFlag);

    if (joiningFlag === true) {
        var docRef = ref.child(`joinedUsers/${currentDate}/${count}`)

        docRef.set({
                Quiz_Info: {
                    questionSet: questionSetUser,
                    answerSet: answerSetUser
                },
                players: [userId],
                userAnsSet: {
                    [userId]: userAnswerObj
                },
                totalPlayersJoined: playersJoined + 1
            })
            .then(() => {
                console.log("Successfully saved")
            })
            .catch(error => {
                console.log(error);
            })
    } else {
        console.log("user cannot join the contest. You dont have enough balance to join the contest");
        return false;
    }
}

Теперь моя проблема: - Для 1-го пользователя я вызываю метод set, теперь от 2-го пользователя и далее я хочу вызвать метод обновления.

Когда 2-й пользователь входит или присоединяется, я хочу обновить только некоторые конкретные поля ie Только поля «player», «totalPlayersJoined» и «userAnsSet» должны обновляться. Таким образом, в «player» (это массив) добавляется 2-й идентификатор пользователя и так далее, «totalPlayersJoined» увеличивается на 1 и так далее, т.е. он станет 2, а userAnsSet также обновляется аналогично тому, как он отображается на изображении выше.

Спасибо

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