我想按时间填写用户和订单,但这不起作用。
await firebase
.firestore()
.collection('chats')
.where('users', 'array-contains', _usr.email)
.orderBy('lastmessage')
.onSnapshot(async res => {
const chats = res.docs.map(_doc => _doc.data());
await this.setState({
email: _usr.email,
chats: chats,
friends: []
});
})
错误是
Uncaught Error in onSnapshot: FirebaseError: The query requires an index. You can create it here
答案 0 :(得分:0)
Firestore会自动在每个字段上生成索引,使您无需执行任何额外的设置工作即可执行许多查询。但是这里的查询需要一个不会自动生成的附加索引,因此您必须自己在Firebase控制台中进行设置。
如果在浏览器的JavaScript控制台中查看错误消息,您将看到它包含一个链接。如果您单击该链接,它将带您到Firebase控制台中的页面,该页面中的所有信息均已预先填充以为您生成正确的索引。
所以:
另请参阅: