我使用firestore作为我的react-native应用程序的数据库。
我正在我的firestore上执行以下查询:
const docRef = await firebase
.firestore()
.collection('meetings')
.where('visitors.' + user, '==', true)
.where('meetingTime', '>', yesterday)
.get()
我收到一条错误消息,告诉我我需要和索引,这个errormessage是一个自动创建索引的链接。点击此链接显示下一张图片:
现在我真的不想要访客。' user @ test_be'要在索引中进行硬编码,因为访问者对象是动态的,可以将更多用户添加为访问者,然后索引不再起作用。
我的会议文件如下:
我如何制作一个确保我可以执行查询的索引? 或者我应该重构我的数据库? 或者这在火店里是不可能的?
答案 0 :(得分:1)
这解决了这个问题,感谢frank van puffelen指导我找到正确的文档
我更改了我的firebase数据结构,如下所示:
meetings
meeting
meetingName: 'meeting 1'
meetingTime: 1524823200
visitors:
user@user_be: true
已更改为
meetings
meeting
meetingName: 'meeting 1'
visitors:
user@user_be: 1524823200
然后在我的查询中我做:
const docRef = await firebase
.firestore()
.collection('meetings')
.where('visitors.' + user, '>', 0)
.where('visitors.' + user, '>', yesterday)
.get()
指向修复的链接:https://firebase.google.com/docs/firestore/solutions/arrays