In diesem Code ich die posSnapshot.val().case
und speichern sie in der tatarget
var erhalten möchten, für das ich die dbCall()
Funktion VOR console.log('TARGETOUT', tatarget)
Firebase asynchrone Datenbank
function dbCall() {
var toReturn;
return admin.database().ref().child('games/' + event.params.gameId + '/player1/boats').once('value').then(function(snapshot) {
snapshot.forEach(function(typeSnapshot) {
typeSnapshot.forEach(function(posSnapshot) {
console.log('POSKEY', posSnapshot.key);
if(posSnapshot.key != 'status') {
console.log(rngPos, incr, posSnapshot.val().state);
if(rngPos == incr && posSnapshot.val().state == 0) {
console.log('===');
return(posSnapshot.val().case);
}
else if(rngPos == incr && posSnapshot.val().state == 1) {
return('1');
}
incr ++;
}
});
});
});
}
var loopPromise = new Promise(function(resolve, reject) {
DD = dbCall();
tatarget = DD.then(function(dbResult) {
console.log(dbResult);
return dbResult;
});
console.log('TARGETOUT', tatarget);
console.log('TARGETRESOLVE', tatarget);
resolve(tatarget);
});
loopPromise.then(function(loopResult) {
console.log(loopResult);
});
Mein Problem, dass die NACH dbCall()
Funktion Ende ausführen müssen die console.log
!
Ich versuchte jedes Versprechen, jeder Callback-Funktionen, ich versuchte auch async
und await
aber Firebase nicht damit umgehen.
Ich arbeitete für diesen Teil des Codes für mehr als 15 Stunden.
Kann mir jemand helfen?
Danke!