尝试从带抖动的Firestore中提取实时值时出错

时间:2019-08-25 15:38:52

标签: firebase flutter google-cloud-firestore

我正在尝试从实时的Firestore数据库中提取值,但是代码中出现的错误很少。我已经使用streambuilder提取数据,因为只要数据库发生更改,就需要对其进行更新。

class ProfileWidget extends StatelessWidget {

  final String userId;

  ProfileWidget(this.userId);

  @override
  Widget build(BuildContext context){
    return StreamBuilder<DocumentSnapshot>(
        stream:Firestore.instance.collection('users')
            .document(userId)
            .snapshots(),
        builder:(context, snapshot){
          if(snapshot.hasData){
            User user = User.fromSnapshot(snapshot.data);
              return Row(
                  children: <Widget>[
                  Text(snapshot.data.documents[0]['sold'].toString())}
              else
                {return CircularProgressIndicator();
          }
        });
  }
}

class User {
  final int name;
  final DocumentReference reference;

  User.fromMap(Map<String, dynamic> map, {this.reference})
      : name = map['name'];

  User.fromSnapshot(DocumentSnapshot snapshot)
      : this.fromMap(snapshot.data, reference: snapshot.reference);
}

以下是我得到的两个错误:

  
      
  1. '错误:未为类'DocumentSnapshot'定义吸气剂'documents'。 (位于[flutter_appprofilescreenfinal] lib \ main.dart:37的undefined_getter)

  2.   
  3. info:未使用局部变量“ user”的值。 ([flutter_appprofilescreenfinal] lib \ main.dart:34处的unused_local_variable)

  4.   

1 个答案:

答案 0 :(得分:0)

对于第一个错误,假设您的用户各自具有documents属性,则您应该像这样访问它

snapshot.data['documents'][0]['sold'].toString()

第二个错误非常简单。您定义了用户,但从未在StreamBuilder的builder函数中使用它。