【问题标题】:Firestore data fetching in wrong orderFirestore 数据以错误的顺序获取
【发布时间】:2019-07-04 20:08:41
【问题描述】:

我正在使用 Angular 6 从 Firestore 获取数据。 我有一个名为 users 的集合,该集合的每个文档都包含用户信息,每个用户都可以具有三个用户角色“Admin”、“ASM”或“Salesmen”之一。我使用 company_code 作为过滤器。 现在,当我获取数据时,只获取所有 company_code 的管理员,然后在一段时间后获取所有其他用户。 有人可以告诉我我在这里做错了什么

getAllUsers(companycode){
    this.afs.collection('users',ref=>ref
    .where("company_code","==",companycode))
    .snapshotChanges().pipe()
    .map(res=>res.map(res=> res.payload.doc.data()))
    .subscribe(res=>{
         console.log(res)
    });
}

【问题讨论】:

    标签: javascript angular firebase google-cloud-firestore angular6


    【解决方案1】:

    要获取所有公司用户,请删除此行 .where(“company_code”, “==”, companycode)

    要获得所有公司销售人员,请使用 .where(“comoany_code”, “==”, “销售员”

    【讨论】:

      【解决方案2】:

      第 1 步。创建 timestamp 字段或 precedence 以引用您的订单。

      第 2 步。在您的查询中添加 orderBy

      getAllUsers(companycode) {
          this.afs.collection('users', ref =>
            ref.where("company_code", "==", companycode).orderBy('timestamp')
          )
            .snapshotChanges().pipe()
            .map(res => res.map(res => res.payload.doc.data()))
            .subscribe(res => {
              console.log(res)
            });
      }
      

      假设您使用的是angularfire2

      【讨论】:

        猜你喜欢
        • 2018-06-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多