[英]update firebase data before signout
由於 dart 事件循環,首先,完成一個同步代碼,在你的情況下是:
Navigator.of(context).pop()
然后,它以完成的順序完成未來,這意味着更快的響應 - 更快的完成。 為了使您的異步代碼(期貨)像同步一樣完整,您應該在期貨之前傳遞 await 關鍵字,例如,它的工作方式如下:
await auth.UpdateData('state', 'offline'); // - completes first
await _signout(context); // - second
Navigator.of(context).pop; // - third
如果您不使用 await 關鍵字,訂單將如下所示:
auth.UpdateData('state', 'offline'); // - query send and wait for response
_signout(context); // - query send and wait for response (logout is usually faster than setting data, that means your user signout first, then - user update data)
Navigator.of(context).pop; // - completes first
解決方案1:
Future.delayed(const Duration(seconds: 2), () {
//what you want after 2 second
});
解決方案 2:將 await 放在 auth.updatData 之前
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.