Невозможно обновить объект с помощью функции транзакции Firebase - PullRequest
0 голосов
/ 29 ноября 2018

Я хочу обновить объект, используя функцию транзакции Firebase.Я прочитал весь документ и все доступные ресурсы.Если данные доступны на конкретном узле, ниже функция транзакции удаляет данные с этого узла.Может ли кто-нибудь помочь мне в этом, что не так с приведенным ниже кодом?

Примечание: - Использование транзакции вместо функции обновления, поскольку значения могут обновляться одновременно.

    await refRun.once('value', snap => {
                    console.log(snap.val()); // Here I am able to get data
                })

   refRun.transaction(async (current) => {

    if (current === null) {
        console.log("coming", current);

        // updating values by fetcing from node 
        return await refRun.once('value', function (snapshot) {
            console.log("coming", snapshot.val()); // coming null here 
            if (snapshot.val() === null) {

                console.log("coming----1", snapshot.val());
                return {
                    total_raised: workout.run_amount || 0,
                    total_distance: workout.distance || 0.0
                }
            }
            else {
                console.log("coming----2", snapshot.val());
                return {
                    user_total_raised: snapshot.val().user_total_raised + workout.run_amount || 0,
                    user_total_distance: snapshot.val().user_total_distance + workout.distance || 0.0
                }
            }
        })

    }
console.log("coming-123", current); // null 

});
...