-1
在这段代码我想要得到的posSnapshot.val().case
并将其存储在tatarget
VAR,为了这个,我需要执行dbCall()
功能之前console.log('TARGETOUT', tatarget)
火力地堡异步数据库
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);
});
我的问题是,dbCall()
功能结束后, console.log
!
我试过每个承诺,每个回调函数,我也试过async
和await
,但Firebase不处理它。
我工作了超过15小时的这部分代码。
有人能帮助我吗?
谢谢!