Flutter 查询条件的颤振firestore结构

Flutter 查询条件的颤振firestore结构,flutter,google-cloud-firestore,Flutter,Google Cloud Firestore,我是NoSQL的新手,我正在尝试找出一种表示数据的好方法。我有一系列员工需要通过移动应用程序申请休假 当我尝试使用flifter编写Firebase查询时,我可以这样做: Firestore.instance .collection("ferie_permessi") .document("worker1@test.com") .snapshot(); 它可以工作,但有两个主要错误: 如果我试图创建另一个名为“Woker info”的集合,我将无法使用worker1@

我是NoSQL的新手,我正在尝试找出一种表示数据的好方法。我有一系列员工需要通过移动应用程序申请休假

当我尝试使用flifter编写Firebase查询时,我可以这样做:

Firestore.instance
    .collection("ferie_permessi")
    .document("worker1@test.com")
    .snapshot();
它可以工作,但有两个主要错误:

  • 如果我试图创建另一个名为“Woker info”的集合,我将无法使用
    worker1@test.com
    作为已存在的文档ID
  • 我必须在客户端对数据进行排序,因为firestore没有给我这种可能性(我已经做了这个设置)
  • 我很确定这种结构一点也不好。每个员工需要有两个列表:
    休假
    其他
    。怎么了

    我的猜测是,我应该移动
    worker1@test.com
    以及
    假期
    其他
    以便我可以进行此类查询:

    Firestore.instance
        .collection("ferie_permessi")
        .where("user", "==", "worker1@test.com)
        .snapshot();
    

    但是现在身份证呢?自动应用程序好吗?

    我最近有机会探索使用firebase firestore创建应用程序。以下几点会有所帮助:

  • 是的,自动生成的
    id
    是好的,因为它是唯一的,例如,您可以拥有一个集合
    vacation\u requests
    users
    ,然后您可以将该
    userid
    用作
    vacation\u requests
    vacations
    中的文档,而不是使用电子邮件作为文档密钥
  • 您可以这样做:收集
    用户
    休假请求
    ,以及
    请求

  • 将用户详细信息存储在
    users
  • 将请求存储在
    请求
    中,并带有
    日期
  • vaccation\u requests
    中存储用户和请求的引用
  • 希望这有帮助