【问题标题】:Firebase does not retrieve fields in flutterFirebase 不会在颤振中检索字段
【发布时间】:2021-12-09 16:42:29
【问题描述】:

我正在尝试从我的收藏“课程​​”2 字段中检索。 课程代码和课程名称。检索时的问题是我只设法检索了第一个字段。

builder: (context, snapshot) {
        if (snapshot.hasData) {
          return ListView.separated(
              itemCount: snapshot.data!.docs.length,
              separatorBuilder: (BuildContext context, int index) =>
                  Divider(height: 1),

              // ignore: dead_code
              itemBuilder: (context, index) {
                DocumentSnapshot doc = snapshot.data!.docs[index];
                return ListTile(
                  contentPadding:
                      EdgeInsets.symmetric(horizontal: 30, vertical: 10),
                  selectedTileColor: Color(0xffE5E5E5),
                  title: Text.rich(
                    TextSpan(
                      text: doc["Course code"],
                      children: <TextSpan>[
                        TextSpan(text: ":"),
                        TextSpan(text: doc["Course name"]),

它向我显示了这个错误:

Exception has occurred.
StateError (Bad state: field does not exist within the DocumentSnapshotPlatform)

这是我的火力基地

我只能检索课程代码,不知道为什么。

【问题讨论】:

标签: firebase flutter dart google-cloud-firestore


【解决方案1】:

您似乎对 Flutter 和 Firebase 的交互方式有疑问。我想建议检查 following thread 尤其是 jschnip 发布的 comment 可以解决您的问题

这可能与 DocumentSnapshot 的最近更改有关,您的 工厂正在寻找数据图,它曾经在doc中,但现在 它在 doc.data() - 除了 DocumentID

因此,对于您的工厂,改变它的一种方法是调整为:

Userr( id: doc.id, email: docdata['email'], username:
docdata['username'], url: docdata['url'], profileName:
docdata['profileName'], bio: docdata['bio'], subject1:
docdata['subject1'], subject2: docdata['subject2']

当你打电话时 它,您需要执行以下操作:

doc.data();
      newUserrr = Userr.fromDocument(doc, _docdata);

【讨论】:

  • 你好@mightyleen。你成功了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-11
  • 1970-01-01
  • 2020-04-15
  • 1970-01-01
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多