Я создал скрипт, который выполняет запрос с помощью firebase. Поскольку я хочу избежать нескольких запросов в отношении отношения одновременно, я использую функцию транзакции, как показано в коде. Сначала я получаю текущее состояние отношения и проверяю, присутствует оно или нет. Это похоже на работу. Первый раз - const current = null
, и будет выполнена функция добавления значения к data2
.
И если я запускаю скрипт второй раз, то он успешно переходит в следующую функцию (doSecondFunction()
)
И, к сожалению, здесь нет никаких текущих данных Я ожидаю, что значение ref data2
было добавлено в первый раз. Но в результате я получаю null
.
Есть ли способ работать в транзакции с текущим состоянием базы данных?
const ref = firebase.database().ref('data2');
ref.once('value', function(snapshot) {
const current = snapshot.val();
if(current == null){
console.log('FIRST');
addValToRefFunction();
}else{
console.log('SECOND');
doSecondFunction(current, ref);
}
});
function doSecondFunction(current, ref){
ref.transaction(function(currentData){
console.log(current); // result is the right value
console.log(currentData); // result is null ?
if (currentData === current){
console.log('Check');
return;
}
}