Firebase Firestore-移动和Web SDK之间的差异



我想知道SDK之间的差异来自何处。例如,我有新闻列表。我对此进行了两个操作:刷新并下载第一个或下一个偏移量。当我使用移动SDK时,我会打电话给此刷新:

FirebaseFirestore.getInstance().collection("news")
.whereEqualTo("categories.finance", true)
.whereEqualTo("locale", "pl")
.orderBy("timestamp", Query.Direction.DESCENDING)
.limit(15)
.endAt(1518554580)
.get()

它将返回最新消息。但是,如果我要在云功能上执行它:

admin.firestore().collection('news')
.where('categories.finance', '==', true)
.where('locale', '==', language)
.limit(15)
.orderBy('timestamp', 'desc')
.endAt(1518554580)
.get()

我得到一个空列表。同样适用于下载偏移。查询看起来像上面有一个差异 - 我正在使用startafter(1518554580(。

为什么会发生这种情况?有没有办法解决此问题?

我知道为什么会发生这种情况。由于某种原因,带有下降时间戳的复合索引适用于移动设备,但是对于Web,它在索引上升时正常工作。因此,我必须为每个类别有两个索引。

最新更新