Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不同场上的滤波器和orderBy_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

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控制台中的一个页面,在该页面中,所有信息都会预先填充,以便为您生成正确的索引

因此:

  • 单击错误消息中的链接
  • 单击进入的页面中的“创建索引”按钮
  • 等待片刻,直到索引完全生成
  • 另见:


    您能解决这个问题吗?