Firebase goOffline()触发得太早

时间:2019-09-03 13:41:50

标签: javascript firebase firebase-realtime-database

为什么会发生以下情况?

执行时

db.ref('einstellungen').update({[set + "_blue"]:true}).then(firebase.database().goOffline());

什么都没发生-没有错误,没有上传。

但是,

db.ref('einstellungen').update({[set + "_blue"]: true}).then().then(function(){
            firebase.database().goOffline();
});

可以正常工作...

1 个答案:

答案 0 :(得分:4)

第一行实际上立即离线:

db.ref('einstellungen').update({[set + "_blue"]:true})
  .then(firebase.database().goOffline());

如果仔细观察,您会将调用goOffline()的结果传递到then()调用中,因此必须立即评估goOffline()

相反,您需要声明一个回调:

db.ref('einstellungen').update({[set + "_blue"]:true})
  .then(() => firebase.database().goOffline());

在第二个代码段中,goOffline()位于回调函数的 body 中,因此只有在实际调用then()回调之后(即在更新完成。