Flutter Firestore 通過 StreamBuilder 檢查用戶是否存在:

庫柏

我正在嘗試通過 StreamBuilder 在我的應用程序中添加一個檢查,以根據用戶的文檔是否存在於 Firestore 中向用戶顯示不同的屏幕。我的代碼在技術上有效,但在熱重載時,它會在移動到我的“UserHomeScreen”之前顯示我的“AddUser”屏幕幾秒鐘。我想知道如何糾正這個問題,如果用戶文檔存在,“AddUser”屏幕根本不會顯示我的“AddUser”屏幕。

這是我的代碼:

class UserStream extends StatelessWidget {
  const UserStream({Key? key}) : super(key: key);
  

  @override
  Widget build(BuildContext context) {
    FirebaseAuth auth = FirebaseAuth.instance;
     String uid = auth.currentUser!.uid.toString();
    return StreamBuilder<dynamic>(
      stream: FirebaseFirestore.instance.collection('users').doc(uid).snapshots(),
      builder: (context, snapshot) {
        if (snapshot.hasData && snapshot.data!.exists) {
          return const UserHomeScreen();
        } else {
          return AddUser(youtubeLink: '', bio: '', bioLink: '', displayName: '', instaLink: '', profilePhoto: '', tiktokLink: '', username: '',);
        }
      },
    );
  }
}
斯蒂芬·加勒

你可以像這樣構建你的構建器:

builder: (context, snapshot) {
  if (snapshot.hasData) {
    if (snapshot.data!.exists){
      return const UserHomeScreen();
    } else {
      return AddUser(youtubeLink: '', bio: '', bioLink: '', displayName: '', instaLink: '', profilePhoto: '', tiktokLink: '', username: '',);
    }
  } else {
    return CircularProgressIndicator();
  }
},

這樣,您就可以顯示CircularProgressIndicator正在解析的快照。此時,您不知道您的數據是否存在。

一旦解決了快照並且您有信息(無論您的數據是否存在),您就可以顯示相應的屏幕。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Flutter StreamBuilder从Firestore返回null

Firestore的Flutter StreamBuilder connectionState问题

用Firestore摇动:StreamBuilder与StreamProvider

用Firestore和Flutter填充数据表(使用StreamBuilder)

Flutter:Firestore在StreamBuilder中获取用户uid

.flutter firestore note 应用程序的 Streambuilder 中的错误

使用 StreamBuilder 使用 Firestore 中的数据填充 Flutter DataTable

Flutter:将firestore快照转换为streambuilder中的列表

檢查 Firestore Collection 元素是否存在

將 Apple 登錄與 React Native Firebase 和 Firestore 結合使用時,如何檢查用戶是否存在?

檢測用戶是否通過 webauthn 身份驗證

Flutter:使用Streambuilder <QuerySnapshot>时如何在Firestore中获取特定文档

使用StreamBuilder来获取Firestore文档,该文档包含Flutter中的地图列表

当数据更改时,Flutter StreamBuilder中使用的Firestore快照永远不会更新

Flutter性能-SetState与StreamBuilder

屏幕之间的Flutter Streambuilder

Flutter-StreamBuilder-刷新

Flutter StreamBuilder与FutureBuilder

Flutter:Streambuilder被多次调用

FirebaseStorage + Flutter,streamBuilder?

StreamBuilder的Flutter BehaviourSubject

Flutter如何刷新StreamBuilder?

Flutter:StreamBuilder中的AnimatedSwitcher

Flutter 给 Streambuilder initalData

用Flutter中的StreamBuilder在Getter“ Snapshot”上调用null

在FuturBuilder for Flutter项目中使用StreamBuilder是否正确?

是否有Flutter StreamBuilder可以让我收听多个流?

Arduino Nano 33 BLE 不接收通過 flutter 應用程序發送的數據

去 - 檢查 Firestore 文檔是否存在