Flutter Firestore отображает идентификатор документа, когда данные в поле вводятся в текстовое поле

# #flutter #google-cloud-firestore

Вопрос:

Вот скриншот моей базы данных Firestoreскриншот Идентификатор документа назван в честь идентификатора пользователя.

Ниже приведен код, который у меня есть до сих пор

   Widget _inputEmail() {
return StreamBuilder<QuerySnapshot<Map<String, dynamic>>>(
    stream: FirebaseFirestore.instance
        .collection("users")
        .snapshots(),
    builder: (context, snapshot) {
    return Container(
      width: 355,
      padding: EdgeInsets.only(bottom: 20),
      child: TextFormField(
        controller: _email,
        decoration: InputDecoration(
            hintText: 'Email',
            helperText: 'Enter Email',
            suffixIcon: IconButton(
              icon: Icon(Icons.navigate_next),
              onPressed: () {
                FirebaseFirestore.instance
                    .collection('users')
                    .where('email', isEqualTo: _email)
                    .get()
                    .then((snapshot) => print(snapshot.docs[0].data()['user.uid']));
              },
            ),
            border: UnderlineInputBorder()),
      ),
    );
  }
);
 

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

Скриншот приложения

Скриншот приложения

В основном это будет меню перевода, в котором введенное электронное письмо является адресом электронной почты получателя, и после нажатия кнопки пользователь может ввести количество денег, которое он хочет перевести на целевое электронное письмо. Затем сумма денег от текущего пользователя будет переведена на счет получателя.

Извините, что спрашиваю слишком много, я все еще изучаю, как работает Firestore для проекта uni.

Комментарии:

1. Привет, текущий код не работает? Что print(snapshot.docs[0].data()['user.uid']); печатает?

Ответ №1:

чтобы получить идентификатор документа, используйте snapshot.docs[0].id