用户创建的字段

时间:2018-04-10 11:23:23

标签: firebase nosql google-cloud-firestore

我使用firestore作为我的react-native应用程序的数据库。

我正在我的firestore上执行以下查询:

 const docRef = await firebase
        .firestore()
        .collection('meetings')
        .where('visitors.' + user, '==', true)
        .where('meetingTime', '>', yesterday)
        .get()

我收到一条错误消息,告诉我我需要和索引,这个errormessage是一个自动创建索引的链接。点击此链接显示下一张图片: enter image description here

现在我真的不想要访客。' user @ test_be'要在索引中进行硬编码,因为访问者对象是动态的,可以将更多用户添加为访问者,然后索引不再起作用。

我的会议文件如下:

enter image description here

我如何制作一个确保我可以执行查询的索引? 或者我应该重构我的数据库? 或者这在火店里是不可能的?

1 个答案:

答案 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