如何在 flutter 中从 Firestore 中检索当前用户信息

How to retrieve current user information from Firestore in flutter

下面的代码将从集合中检索所有信息,但我只想检索当前用户信息。我该怎么做?

class Booking extends State<BookingDetails> {
  final databaseReference = Firestore.instance;
  var firebaseUser = FirebaseAuth.instance.currentUser();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Appbar"),
      ),
      body: Center(
        child: Container(
            padding: const EdgeInsets.all(10.0),
            child: StreamBuilder<QuerySnapshot>(
              stream: Firestore.instance.collection('User1').snapshots(),
              builder: (BuildContext context,
                  AsyncSnapshot<QuerySnapshot> snapshot) {
                if (snapshot.hasError)
                  return new Text('Error: ${snapshot.error}');
                switch (snapshot.connectionState) {
                  case ConnectionState.waiting:
                    return new Text('Loading...');
                  default:
                    return new ListView(
                      children: snapshot.data.documents
                          .map((DocumentSnapshot document) {
                        return new CustomCard(
                          title: document['name'],
                          description: document['phno'],
                        );
                      }).toList(),
                    );
                }
              },
            )),
      ),
    );
  }
}

我想为一个用户存储多个文档,我想从 Firestore 中检索并仅显示他的文档,该怎么做?

如果要检索当前用户的信息,那么就必须检索一个文档。例如,如果您具有以下结构:

User1 (collection) --> userID (document)

然后你需要做以下事情:

 Stream<DocumentSnapshot> getData()async*{
     FirebaseUser user = await FirebaseAuth.instance.currentUser();
     yield* Firestore.instance.collection('User1').where("userId", isEqualTo: user.uid).snapshots();
  }

那么你可以这样做:

      body: Center(
        child: Container(
            padding: const EdgeInsets.all(10.0),
            child: StreamBuilder<QuerySnapshot>(
              stream: getData(),