如何避免第一次从扑朔迷离的火堆中获得满载内容

问题描述 投票:0回答:1

我只想在集合中有任何更改的情况下听内容。但是当我尝试StreamSubscription时,所有内容都在第一次加载。

如何在第一次避免满载?

 static StreamSubscription<dynamic> listenMessageChange(Function contentChange) {
    return Firestore.instance
        .collection('contents')
        .snapshots()
        .listen((data) {
          List<Message> changedContents = [];
          data.documentChanges.forEach((change) {
            changedContents.add(Content.createFromMap(change.document.data));
          });
          contentChange(changedContents);
    }, cancelOnError: false);
  }
firebase flutter google-cloud-firestore listener
1个回答
0
投票

[监听实时更新时,第一次会检索所有数据。避免完全加载内容的唯一方法是使用方法limit(),这样您就不会在第一次加载时获得所有内容。之后,您可以检查更改/添加/删除了哪个文档:

Firestore.instance
        .collection('contents')
        .snapshots()
        .listen((data) {
      data.documentChanges.forEach((res) {
      if (res.type == DocumentChangeType.added) {
        print("added");
        print(res.document.data);
      } else if (res.type == DocumentChangeType.modified) {
        print("modified");
        print(res.document.data);
      } else if (res.type == DocumentChangeType.removed) {
        print("removed");
        print(res.document.data);
      }
    });
© www.soinside.com 2019 - 2024. All rights reserved.