最近更新后未指定特定性别时如何修改 Firestore 查询以返回所有性别值

问题描述 投票:0回答:1

在最近的更新之前,我的应用程序的 Firestore 查询设置如下:如果用户未指定性别,则查询将通过为性别过滤器分配 null 值来返回“女性”和“男性”的所有结果。这是使用以下代码实现的:

.where('gender', isEqualTo: genderM())

dynamic genderM(){
    if(gender=='Female'){
      return 'Female';
    }else if(gender=='Male'){
      return 'Male';
    }else{
      return null;
    }
  }

但是,在最近的更新之后,当 sexM() 返回 null 时,此设置不再返回所有可能的性别值。鉴于我无法修改数据库中的现有性别字段,因为我的应用程序已经发布并包含大量数据,当用户想要所有性别结果时,如何调整 Firestore 查询以包含所有性别结果?我需要一个与现有数据库架构保持兼容性的解决方案。

google-cloud-firestore
1个回答
0
投票

最简单的方法是仅当

gender
变量有值时添加性别条件。我不确定你使用的是什么编程语言,但它会是这样的:

query = ... // however you already initialize the variable
if(gender=='Female'){
  query = query.where('gender', isEqualTo: 'Female');
}else if(gender=='Male'){
  query = query.where('gender', isEqualTo: 'Male');
}
© www.soinside.com 2019 - 2024. All rights reserved.