对存储组数据进行Firestore分页查询

时间:2019-12-12 06:09:28

标签: firebase google-cloud-firestore react-native-firebase

说明:我想在具有Firebase的React-Native中实现无限滚动,并且想对集合组数据进行分页以在我的应用中立即获得结果。错误显示在屏幕截图中。

我的代码:

var ref = firestore().collectionGroup('user_posts').orderBy('time_stamp', 'desc').limit(5);
    ref.get().then(snapshot => {
      var posts = []
      var lastVisible = snapshot.docs[snapshot.docs.length - 1];
      this.setState({ last_Visible: lastVisible });
      }); 

var next = firestore().collectionGroup('user_posts').orderBy('time_stamp', 'desc')
          .startAfter(this.state.last_Visible)
          .limit(5);
 next.get()
        .then(FirestoreDocumentSnapshot => {
          var lastVisible = FirestoreDocumentSnapshot.docs[FirestoreDocumentSnapshot.docs.length - 1];
          this.setState({ last_Visible: lastVisible });
})

请帮助,我在做什么错了?

enter image description here

2 个答案:

答案 0 :(得分:0)

首先查看错误和代码,看来您所引用的字段为空,或者lastVisible应该为偶数。

尝试检查文档中是否没有空字段,然后尝试从lastVisible中删除-1。

Here,您可以检查使用startAfter()的正确方法,这是问题的原因。

答案 1 :(得分:0)

在按time_stamp排序时,应在查询中指定该字段,如下所示:

.startAfter(this.state.last_Visible.data().time_stamp)

Here是官方文档中的一个示例。 (从语言选项卡中选择Node.js)