Flutter Firestore - Показать документ с указанием c со всеми имеющимися в нем значениями - PullRequest
0 голосов
/ 16 июня 2020

Я пытался показать документ, когда пользователь переходит на страницу профиля, чтобы увидеть свою информацию. На данный момент я сделал следующее:

  class Profile extends StatefulWidget {

  Profile({Key key}) : super(key: key);

  @override
  _ProfileState createState() => _ProfileState();

}

class _ProfileState extends State<Profile> {

  Firestore _firestore = Firestore.instance;
  List<DocumentSnapshot> _members = [];

  bool _loading = true;

  _getMember() async {
    var firebaseUser = await FirebaseAuth.instance.currentUser();
   Query query = _firestore.collection("membership");
    setState(() {
      _loading = true;
    });
   QuerySnapshot querySnapshot = await query.getDocuments();
   _members = querySnapshot.documents;
     setState(() {
     _loading = false;
   });
  }

  @override
  void initState() {
    super.initState();
    _getMember();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Profile"),
      ),
      body: Container(
        child: _members.length == 0 ? Center(child: Text("empty"),) : ListView.builder(
            itemCount: _members.length,
            itemBuilder: (BuildContext context, int index) {
          return ListTile(
            title: Text(_members[index].data["name"]),
          );
        }),
      ),
    );
  }
}

Но это показывает только имя. Кроме того, он показывает другой документ из той же коллекции, чего я не хочу.

Моя коллекция:

Мой вопрос: как я могу получить данные определенного c документа со всеми значениями в документе? При заказе c, НА ПРИМЕР:

Имя: gün

Фамилия: uluutku

Возраст: 59

Вес: 90

Номер телефона: + 05075326895

ПРИМЕЧАНИЕ. В качестве идентификатора документа я использую идентификаторы пользователей.

1 Ответ

0 голосов
/ 16 июня 2020

Как указано в комментарии, вы должны следовать по пути вниз к Документу, а не просто запрашивать всю Коллекцию для сбора информации от пользователя. Это пример того, как получить документ с использованием идентификатора пользователя:

  void _onPressed() async{
    var firebaseUser = await FirebaseAuth.instance.currentUser();
    firestoreInstance.collection("users").document(firebaseUser.uid).get().then((value){
      print(value.data);
    });
  }

Вы можете найти больше примеров того, как это сделать из здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...