【问题标题】:got an error in flutter require an identifier while using the streambuilder使用流构建器时出现颤振错误需要标识符
【发布时间】:2020-06-25 06:24:16
【问题描述】:

我已经在 Flutter 应用程序中创建了小部件,并将其与 google firebase 连接,但在获取数据文档时,StreamBuilder 出现错误。('快速')

Widget _createBody() {
    return StreamBuilder(
      stream: Firestore.instance
          .collection('notes').document.('quick').snapshots(),
      builder: (context, snapshot){
        if(snapshot.hasData){
          var doc = snapshot.data;
          if (doc.exists){
            return Text(doc['content']);
          }
        }
        return CircularProgressIndicator();

       }
    );
  }

【问题讨论】:

    标签: firebase flutter firebase-realtime-database dart mobile-application


    【解决方案1】:
     return StreamBuilder<QuerySnapshot>(
              stream: Firestore.instance.collection('notes').snapshots(),
              builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
                if (snapshot.hasError)
                  return Center(
                    child: Text('Error: ${snapshot.error}'),
                  );
                switch (snapshot.connectionState) {
                  case ConnectionState.waiting:
                    return Center(
                      child: Text('Loading...'),
                    );
                  default:
                    return new ListView(
                  children: snapshot.data.documents.map((
                      DocumentSnapshot document) {
                    return  ListTile(
                      title: Text(document['content']),
                     );
                   }).toList(),
                }
               }
             };
    

    【讨论】:

    • 我在文档后使用“点”。我得到了解决方案。感谢您的关注
    【解决方案2】:

    如果您要获取单个文档,应该是这样的。

    Widget _createBody() {
        return StreamBuilder(
          stream: Firestore.instance
              .collection('notes')
              .document('quick')
              .get()
              .snapshots(),
          builder: (context, snapshot){
            if(snapshot.hasData){
              var doc = snapshot.data;
              if (doc.exists){
                return Text(doc['content']);
              }
            }
            return CircularProgressIndicator();
    
           }
        );
      }
    

    如果这不起作用,您可以随时更改它:

    Firestore.instance
            .collection('notes')
            .document('quick')
            .get()
            .then((DocumentSnapshot ds) {
          // use ds as a snapshot
        });
    

    【讨论】:

    • 让我检查一下
    猜你喜欢
    • 2020-04-13
    • 1970-01-01
    • 2021-03-20
    • 2021-06-18
    • 2020-08-23
    • 1970-01-01
    • 2021-01-18
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多