【问题标题】:How can I get the last uploaded data to Firebase?如何获取上次上传到 Firebase 的数据?
【发布时间】:2022-12-18 22:04:48
【问题描述】:
StreamBuilder<QuerySnapshot<Map<String, dynamic>>>(
        stream: FirebaseFirestore.instance
            .collection('users')
            .where('bmi')
            .limit(1)
            .snapshots(),
        },
      )),


class User {
  final double bmi;

  User(
      {required this.bmi});

  Map<String, dynamic> toJson() => {
        'bmi': bmi,
      };

  static User fromJson(Map<String, dynamic> json) => User(
      bmi: json['bmi']);
}

我想将最后添加的“bmi”值提取到 firebase。我需要使用 OrderBy() 方法吗?

我尝试将 .last 方法添加到快照的末尾。但

“不能将参数类型‘Future<QuerySnapshot<Map<String, dynamic>>>’分配给参数类型‘Stream<QuerySnapshot<Map<String, dynamic>>>?’。”,

报错。

【问题讨论】:

    标签: flutter firebase dart google-cloud-firestore


    【解决方案1】:

    Firestore 没有为每个文档创建或更新时间的内置时间戳概念您可以在查询中用作条件.

    如果您需要这个,您必须自己为每个文档添加一个时间戳字段。一旦存在,您可以通过以下方式获取最新文档:

    FirebaseFirestore.instance
        .collection('users')
        .orderBy('yourTimestampField', descending: true)
        .limit(1)
        .snapshots(),
    },
    

    另请参阅ordering and limiting data 上的 Firebase 文档

    【讨论】:

    • 我编辑了我的代码。我有一个名为 User 的模型。如何在其中定义 TimeStamp?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2016-10-28
    • 2021-01-18
    • 1970-01-01
    • 2020-02-29
    • 1970-01-01
    相关资源
    最近更新 更多