当在文本字段中输入字段中的数据时,Flutter Firestore 显示文档 ID

Posted

技术标签:

【中文标题】当在文本字段中输入字段中的数据时,Flutter Firestore 显示文档 ID【英文标题】:Flutter Firestore display document ID when a data in field is inputted in textfield 【发布时间】:2021-09-08 18:47:06 【问题描述】:

这是我的 Firestore 数据库的屏幕截图 文档 ID 以用户 uid 命名。

下面是我目前的代码

  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()),
      ),
    );
  
);

我想要实现的是,当用户输入电子邮件时,在此文本字段中,它将显示该电子邮件所在位置的文档 ID,以便我可以创建另一个函数来修改货币数据。

应用截图

基本上这将是一个转账菜单,其中输入的电子邮件是收件人的电子邮件,按下按钮后,用户可以输入他们想要转账到目标电子邮件的金额。然后当前用户的金额将转入收款人的账户。

抱歉问的太多了,我还在学习 Firestore 如何为 uni 项目工作。

【问题讨论】:

嗨,当前的代码不起作用吗? print(snapshot.docs[0].data()['user.uid']); 打印什么? 【参考方案1】:

要获取文档ID,请使用snapshot.docs[0].id

【讨论】:

以上是关于当在文本字段中输入字段中的数据时,Flutter Firestore 显示文档 ID的主要内容,如果未能解决你的问题,请参考以下文章

输入文本时自动扩展的 Flutter 文本字段,然后在达到特定高度时开始滚动文本

如何在 Flutter 中检索没有文本字段的文本输入

Flutter 焦点管理 FocusScope 组件

当在 jquery 中触发文本字段 onfocus 事件时,标题不固定

Flutter - 文本字段中初始值和用户输入的不同颜色

输入时光标默认为文本字段的开头,使用 TextEditingController + onChanged - Flutter