При тестировании моего кода журналы консоли будут 2: 0
(несколько раз), 3: 0
(один раз), 1: _
(несколько раз, когда _
увеличивается каждый раз).
Яне знаете, как заставить 1
произойти до 2
и 3
, чтобы при записи в базу данных (после журнала 3) значение не было 0
.
Я не уверенкак подойти к этой проблеме, поскольку у меня нет опыта работы с огненной базой.
var count=0;
var total=0;
var ass_ref = admin.database().ref("modules/"+mod+"/Assignments");
return ass_ref.once("value", function(snapshot) {
snapshot.forEach(function(child) {
var name = child.key;
var ref = admin.database().ref("modules/"+mod+"/Assignments/"+name+"/"+uid);
ref.once("value", function(mark) {
count++;
total=total+ parseInt(mark.val(),10);
console.log("1:"+total); //Value increases each time but occurs after 3
});
console.log("2:"+total); //Value = 0 (occurs multiple times, in foreach)
});
console.log("3:"+total); //Value = 0, logs once, after "2"
Я желаю, чтобы 1
произошел до 2
(я полагаю, это будет записано как 1,2,1,2 ...)так что конечное значение, зарегистрированное в 3
, совпадает с последним значением, зарегистрированным в 1
.