gpt4 book ai didi

firebase - Cloud Firestore 中的分页

转载 作者:IT王子 更新时间:2023-10-29 07:04:29 26 4
gpt4 key购买 nike

如果向 startAtstartAfter 提供 DocumentSnapshot 不起作用,我该如何对数据进行分页。

在网络上你可以使用 the following :

const first = db.collection('cities').orderBy('population').limit(25)

first.get().then(function (documentSnapshots) {
// Get the last visible document.
const lastVisible = documentSnapshots.docs[documentSnapshots.docs.length-1]

// Construct a new query starting at this document, get the next 25 cities.
const next = db.collection('cities').orderBy('population').startAfter(lastVisible).limit(25)
})

另请参阅:https://github.com/flutter/flutter/issues/21017

最佳答案

由于 Cloud Firestore 删除了此功能,因此不再有解决此问题的方法,即您不能再使用 orderBy(FieldPath.documentID())

您目前不能使用 DocumentSnapshot 作为参数。
但是,您可以简单地使用 特定值。在此示例中,它将是 lastVisible 文档中的 population 数字:

final db = Firestore.instance;    

db.collection('cities').orderBy('population').limit(25).getDocuments().then((querySnapshot) {
final lastVisible = snapshot.documents.last;

// Construct a new query starting at the last document, get the next 25 cities.
final next = db.collection('cities').orderBy('population')
.startAfter([lastVisible.data['population']]).limit(25);
});

如果您有具有相同值的字段,您可以使用 the following logic 按文档 ID 排序:

.orderBy(...).orderBy('__name__').startAfter([..., lastVisible.documentId])

<罢工>

关于firebase - Cloud Firestore 中的分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54660348/

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