【问题标题】:How to read one field in a firestore sub collection using flutter?如何使用flutter读取firestore子集合中的一个字段?
【发布时间】:2022-11-01 20:44:09
【问题描述】:

在我的代码中,我尝试使用用户 ID 从用户表中获取一个字段。数据库的结构。

childPrivateDetails 是用户表的子集合

我想从这张表中获取年龄怎么做

代码


 Future<void> getage() async {
    final sp = context.read<SignInProvider>();
    FutureBuilder(
      future: FirebaseFirestore.instance
          .collection("users")
          .doc(sp.uid)
          .collection("childPrivateDetails")
          .doc(sp.uid)
          .get(),
      builder: (context, snapshot) {
        if (snapshot.connectionState == ConnectionState.waiting) {
          return const CircularProgressIndicator();
        }

        return Text(snapshot.data.data()["age"]);
      },
    );

  @override
  Widget build(BuildContext context) {

   print(wiget.age);

错误

当我添加“?”

为此,我没有使用模型

【问题讨论】:

    标签: flutter google-cloud-firestore flutter-dependencies


    【解决方案1】:

    使用get() 方法获取单个字段,如下所示:

      Future<void> getAge() async {
        final path = 'users/${sp.uid}/childPrivateDetails/${sp.uid}';
        final reference = FirebaseFirestore.instance.doc(path);
        final age = await reference.get().then((value) => value.get('age'));
        print('age is: $age');
      }

    【讨论】:

      【解决方案2】:

      试试下面的代码:

      FutureBuilder<DocumentSnapshot<Map<String, dynamic>>>(
        future: FirebaseFirestore.instance
              .collection("users")
              .doc(sp.uid)
              .collection("childPrivateDetails")
              .doc(sp.uid)
              .get(),
        builder: (context, snapshot) {
          if (snapshot.connectionState == ConnectionState.waiting) {
            return const CircularProgressIndicator();
          }
      
         return Text(snapshot.data.data()!["age"]);
        },
      ),
      

      【讨论】:

      • 兄弟,我试过了,但没用,控制台没有显示
      • 我会更新我的代码
      • @DasunDola I edited
      • 我尝试了第一个没有工作我添加了第二个然后显示这个错误。我编辑了这个问题
      • @DasunDola I edited
      猜你喜欢
      • 2020-02-03
      • 2020-12-28
      • 2022-01-19
      • 2020-02-15
      • 1970-01-01
      • 1970-01-01
      • 2021-06-30
      • 2023-01-15
      相关资源
      最近更新 更多