【问题标题】:Flutter Firestore Ordering IssuesFlutter Firestore 排序问题
【发布时间】:2019-05-27 16:08:42
【问题描述】:

我是 Flutter 的新手,所以请多多包涵。因此,一旦我点击主页,我需要立即从 Firestore 中获取一个用户对象。问题是目前,我正在尝试在 initState() 函数中获取用户,并且在获取用户对象之前触发了构建函数(需要用户对象),从而导致异常。

这是我的用户在 initState() 中获取代码

//get user object
StreamBuilder<DocumentSnapshot>(
  stream: Firestore.instance
      .collection("users")
      .document(widget.uid)
      .snapshots(),
  builder:
      (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
    setState(() {
      user = snapshot.data.data as User;
    });

  },
);

另外,我刚刚发现这段代码永远不会到达 setState 块。不知道为什么。我知道流 Firestore ref 是正确的。关于如何重新组织我的代码的任何建议?谢谢!

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    在构建函数中使用流构建器作为小部件。

      StreamBuilder<DocumentSnapshot>(
          stream: Firestore.instance
              .collection("users")
              .document(widget.uid)
              .snapshots(),
          builder:
              (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
                return Text(snapshot.data.data.userName); // example
          },
        );
    

    【讨论】:

    • 如果我这样做,是不是每次我对状态进行轻微更新时都必须重建流构建器?
    • 我刚试过这个,它返回一个错误,因为构建器部分由于某种原因永远不会被击中。
    猜你喜欢
    • 2019-06-26
    • 1970-01-01
    • 2021-01-12
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2020-03-30
    相关资源
    最近更新 更多