gpt4 book ai didi

firebase - flutter 火 flutter 火

转载 作者:行者123 更新时间:2023-12-03 03:24:04 28 4
gpt4 key购买 nike

我正在为正在开发的应用程序使用Firebase Firestore。基本上,我有一个 Collection('Chat'),其中可能包含一千个文档。我需要一种方法来实现 Firebase分页,以限制从后端检索多少文档。

即时通讯使用 streamBuilder 并将以下查询作为流传递:

stream: widget.messageDocRef
.collection('Chat').orderBy('timestamp', descending: true)
.limit(80)
.snapshots();

我有一个 ListView 和一个 scrollController ,代码:
ListView(
physics: const AlwaysScrollableScrollPhysics(),
reverse: true,
controller: _scrollController,
padding: EdgeInsets.symmetric(vertical: 20.0, horizontal: 10.0),
children: messagesBubble,
),

我找不到如何在Flutter中实现它的任何好的文档。

谢谢!

最佳答案

使用ScrollController,然后在initState内部执行以下操作:

@override
void initState() {
this.getdbData();
super.initState();
_scrollController.addListener(() {
if (_scrollController.position.pixels ==
_scrollController.position.maxScrollExtent) {
getdbData();
}
});
}

因此,首先添加一个侦听器,该侦听器将注册一个在对象更改时要调用的闭包。然后检查 position.pixel是否等于 position.maxScrollExtent并在满足上述条件的情况下调用该方法。

同样不要忘记配置 Controller :
@override
void dispose() {
_scrollController.dispose();
super.dispose();
}

https://api.flutter.dev/flutter/widgets/ScrollPosition-class.html

https://api.flutter.dev/flutter/widgets/ScrollController-class.html
getdbData()是从数据库中检索数据的方法,您将数据库分配给属性 stream

关于firebase - flutter 火 flutter 火,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59692601/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com