【问题标题】:How can I acess a document field using document id from cloud firestore?如何使用 Cloud Firestore 中的文档 ID 访问文档字段?
【发布时间】:2023-01-01 02:45:38
【问题描述】:

我想从 cloud firestore 访问我的文档字段“uname”。我将 uid 和文档 id 设为相同,当我尝试访问文档字段时,它显示错误 Bad state: field does not exist within the DocumentSnapshotPlatform

这是我的代码

  final userData = FirebaseFirestore.instance
      .collection("Users")
      .doc(FirebaseAuth.instance.currentUser!.uid)
      .get()
      .then((value) => print(value["uname"]));

【问题讨论】:

    标签: flutter firebase dart google-cloud-firestore


    【解决方案1】:

    您必须使用data()getDocumentSnapshot的数据,然后访问uname

    尝试用value.data()替换value

    final userData = FirebaseFirestore.instance
          .collection("Users")
          .doc(FirebaseAuth.instance.currentUser!.uid)
          .get()
          .then((value) => print((value.data())["uname"]));
    

    【讨论】:

      【解决方案2】:

      get() 的返回实际上是一个DocumentSnapshot,您需要访问data() 以获取文档字段的Map<String, dynamic>,然后从中访问"uname" 值,如下所示:

      final userData = FirebaseFirestore.instance
            .collection("Users")
            .doc(FirebaseAuth.instance.currentUser!.uid)
            .get()
            .then((value)  {
            final documentData = value.data() as Map<String, dynamic>; // this is your document data           
            print(documentData["uname"]) // this is you need to access the name field
            });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-11
        • 2018-07-04
        • 1970-01-01
        • 1970-01-01
        • 2018-12-05
        • 2021-01-24
        相关资源
        最近更新 更多