Javascript 不同场上的滤波器和orderBy
我想按时间填充用户和订单。但它不起作用Javascript 不同场上的滤波器和orderBy,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我想按时间填充用户和订单。但它不起作用 await firebase .firestore() .collection('chats') .where('users', 'array-contains', _usr.email) .orderBy('lastmessage') .onSnapshot(async res => {
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
Firestore会自动在每个字段上生成索引,这允许您执行许多查询,而无需任何额外的设置工作。但是这里的查询需要一个不是自动生成的附加索引,因此您必须自己在Firebase控制台中进行设置 如果查看浏览器JavaScript控制台中的错误消息,您将看到它包含一个链接。如果您单击该链接,它会将您带到Firebase控制台中的一个页面,在该页面中,所有信息都会预先填充,以便为您生成正确的索引 因此: