我想检查Firebase Realtime DB中是否存在数据。问题是B总是被执行,因为执行if(snapshot.exists())
时,它没有真值,因为它是异步调用,所以它没有值。
ref.child("Users").child(theDataToAdd).once('value', function(snapshot) {
if(snapshot.exists()) {
//A
}else{
//B
}
});
如何等到if语句获得true / false值然后继续执行代码?
答案 0 :(得分:0)
不要使用一次回调参数参数。请改用返回的promise,并继续使用promises。
ref.child("Users").child(theDataToAdd).once('value').then(snapshot => {
// do the next thing here
})
如果您不知道承诺如何运作,请从此处观看此视频系列:https://www.youtube.com/watch?v=7IkUgCLr5oA&index=1&list=PLl-K7zZEsYLkPZHe41m4jfAxUi0JjLgSM
如果没有完全理解承诺,很难在Cloud Functions中发挥作用。