NextJS: react-firebase-hooks orderBy



我正在使用这个包https://github.com/csfrequency/react-firebase-hooks,下面的代码可以工作。

const [posts, loading, error] = useCollection(
firebase
.firestore()
.collection('posts')
.where('uid', '==', uid),
{
snapshotListenOptions: { includeMetadataChanges: true },
}
)

然而,当我添加的顺序,我得到了一个错误:Error: {"code":"failed-precondition","name":"FirebaseError"}

const [posts, loading, error] = useCollection(
firebase
.firestore()
.collection('posts')
.where('uid', '==', uid)
.orderBy('createdAt', 'desc'),
{
snapshotListenOptions: { includeMetadataChanges: true },
}
)

我想知道在使用React-Firebase-Hooks时应该如何构造查询。如有任何帮助,我将不胜感激。

我认为你需要添加复合索引:

collection post: uid Ascending createdAt Descending

不知道你是如何得到这个错误的,但也许你能从中得到更多的细节。我直接在node中复制了它。如果你直接在节点上运行这样的查询,你会得到错误信息,更多的细节,如:

Error: 9 FAILED_PRECONDITION: The query requires an index. You can create it here: https://console.firebase.google.com/v1/r/project/<project-id>/firestore/indexes?create_composite=Ck1wcm9qZWN0cy9zdXJ5amFrLXRlc3QtMDAvZGF0YWJhc2VzLyhkZWZhdWx0KS9jb2xsZWN0aW9uR3JvdXBzL3Bvc3RzL2luZGV4ZXMvXxABGgcKA3VpZBABGggKBHNvcnQQAhoMCghfX25hbWVfXxAC

如果你点击错误中的链接,索引将自动建立。复合索引的文档在这里

最新更新