如果用戶通過 StreamBuilder 基于他們的 UserID ('uid') 在 Firestore 中的'users'集合下有一個檔案,我試圖在用戶通過身份驗證后添加一個檢查。
我遇到的問題是,當我運行我的代碼時,它按預期作業,但幾秒鐘后,即使檔案不存在,它也會重定向到“UserHomeScreen”。我該如何糾正這個問題,以便沒有用戶檔案的用戶不會被推送到我的“UserHomeScreen”?
這是我的代碼:
class UserStream extends StatelessWidget {
const UserStream({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').doc('uid').snapshots(),
builder: (context, snapshot) {
if (snapshot.hasData) {
return const UserHomeScreen();
} else {
return const SignUpNewUser();
}
},
);
}
}
uj5u.com熱心網友回復:
在snapshot.hasData當異步呼叫完成是真實的。即使該檔案不存在,snapshot.hasData一旦確定,仍然為真。
為確保檔案存在,您還需要檢查:
if (snapshot.hasData && snapshot.data!.exists) {
...
這也顯示在處理一次讀取的檔案中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/360801.html
標籤:火力基地 扑 镖 火力实时数据库 谷歌云firestore
