Flutter:如何检查字符串中的字母是否相同[重复]

2024-01-31

我正在制作一个表单,供用户通过输入卖家的帐户名称和帐户类型来添加新卖家。但在将新卖家添加到firestore之前,它会检查该卖家是否存在。现在我的代码仅检查输入的名称是否与数据库中的名称非常相似。

例如:数据库中有SellerABC,那么如果用户输入,

  • sellerABC = 不相同
  • seLLerAbc = 不相同
  • 卖家ABC = 相同

由于卖家的账户名可能是大写和小写的组合,我想检查两个字符串的相似字母。如果用户输入的名称与数据库中的字母相同,则返回 true。

例如:

  • SeLLerabC = 相同

我应该如何检查字符串中是否有相同的字母?

这是我的代码:

    Future addSeller({
    required String seller_name,
    required String? typeOfAcc,
  }) async {
    
    final docSeller = FirebaseFirestore.instance.collection('sellers').doc();
    final querySnapshot = FirebaseFirestore.instance
        .collection('sellers')
        .where('seller_name', isEqualTo: seller_name)
        .where('account_type', isEqualTo: typeOfAcc);

querySnapshot.get().then((querySnapshot) async {
      if (querySnapshot.docs.isNotEmpty) {
        showDialog(
            context: context,
            barrierDismissible: false,
            builder: (context) => AlertDialog(
                  title: Text('Error'),
                  content: Text('This seller already exists!'),
                  actions: <Widget>[
                    TextButton(
                      child: Text(
                        'OK',
                        style: TextStyle(color: Colors.white),
                      ),
                      onPressed: () {
                        Navigator.of(context).pop();
                      },
                      style: ButtonStyle(
                          backgroundColor: MaterialStateProperty.all(
                              Color.fromARGB(255, 43, 115, 255))),
                    ),
                  ],
                ));
      } else {
        final json = {
          'seller_name': seller_name,
          'account_type': typeOfAcc,
        };
        await docSeller.set(json);
        showDialog(
            context: context,
            barrierDismissible: false,
            builder: (context) => AlertDialog(
                  title: Text('Successful'),
                  content: Text('New seller has been successfully added!'),
                  actions: <Widget>[
                    TextButton(
                      child: Text(
                        'OK',
                        style: TextStyle(color: Colors.white),
                      ),
                      onPressed: () {
                        Navigator.push(
                            context,
                            MaterialPageRoute(
                                builder: (context) => EvaluateCriteria(
                                    sellerName: seller_name,
                                    typeAcc: typeOfAcc)));
                      },
                      style: ButtonStyle(
                          backgroundColor: MaterialStateProperty.all(
                              Color.fromARGB(255, 43, 115, 255))),
                    ),
                  ],
                ));
      }
    });
  }
}

Firestore 不提供不区分大小写的查询。如果您需要查询字符串并忽略其大小写,则应在 Firestore 中存储该字符串的“规范”版本,然后让客户端代码将其用于所有查询。

因此,如果您需要“原始”卖家名称,您可以保留一个名为“serachable_seller_name”(将保存小写卖家名称)的额外字段,并根据该字段查询文档,并在显示时显示“seller_name”,这是大写字符的卖家名称。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter:如何检查字符串中的字母是否相同[重复] 的相关文章

随机推荐

  • CPU的矩阵访问和乘法优化

    我在 java 中制作了一些内在优化的矩阵包装器 在 JNI 的帮助下 需要对此予以肯定 你能给出一些关于矩阵优化的提示吗 我要实施的是 矩阵可以表示为四组缓冲区 数组 一组用于水平访问 一组用于垂直访问 一组用于对角线访问 以及一个命令缓
  • 如何在 Eclipse 中组织 100 多个项目?

    当您拥有 5 种以上语言和 100 多个项目时 在我看来 使用一个工作区的默认设置是不可接受的 因为一个工作区会变得非常混乱 拥有一个庞大而杂乱的工作空间会降低您的工作效率 问题 当您拥有 5 种以上语言和 100 多个项目时 使用 Ecl
  • 替代 mongoDB 3.0[之前版本]中的 $strLenCP 字段

    我目前使用的是 mongo 3 0v 我需要找到聚合命令结果中每个字符串的长度 例如 db getCollection temp find key value1 key value2 key valuee2 此查询给出关键字段的长度 db
  • Python 错误 - TypeError:输入最多需要 1 个参数,得到 3 个 [重复]

    这个问题在这里已经有答案了 有人可以解释为什么我不能在目标变量中使用 your name 吗 my name Bryson my age 29 your name input What is your name your age input
  • mySQL - 使用 mysqli 应用行级锁

    使用 PHP 的 mysqli 如何应用行级锁 行级锁会阻止任何人编辑当前存在的符合您条件的行 对吗 但是他们会阻止用户插入符合您条件的行吗 Thanks 如果您想锁定特定行以防止编辑 请使用FOR UPDATE在 SELECT 查询的末尾
  • 如何用一个数组实现3个栈?

    有时 我会遇到以下面试问题 如何用一个数组实现3个堆栈 当然 任何静态分配都不是解决方案 空间 而非时间 高效 你可以 1 定义两个堆栈 从数组端点开始并沿相反方向增长 2 将第三个堆栈定义为从中间开始并向您想要的任何方向增长 3 重新定义
  • Kotlin:我们可以在Kotlin中使用EventBus(GreenRobot)的@Subscribe吗?

    我的 onEvent 在如下片段中 在我的 Kotlin 函数中捕获活动的身份验证 但是 我无法触发 onEvent Subscribe fun onEvent event AuthenticationEvent if event isAu
  • Object.GetHashCode() 的实现

    我正在阅读有效的 C https rads stackoverflow com amzn click com 0321658701并且有一条评论关于Object GetHashCode 我不明白 Object GetHashCode 使用内
  • 帆升起时出现咕噜声错误

    我在帆升降机上遇到此错误 风帆版本 v0 10 0 rc11 error Grunt module js 340 throw err Error Cannot find module home mandeep freelance hello
  • Android 联系信息更新是否有意?

    我可以通过使用 putExtra 将信息作为额外数据传递来使用 Intent 创建新联系人 是否可以使用信息创建 Intent 如果联系人已在电话簿中 它将使用新信息进行更新 实际上 您可以使用意图通过 ContactsContract 创
  • MVC 3 客户端比较验证

    这里发生了一些奇怪的事情 我有一个基本形式 br
  • WPF 自动调整元素大小

    当应用程序窗口调整大小时 我希望其中的元素也按比例调整大小 那可能吗 我尝试谷歌搜索 但找不到任何与此相关的内容 我的 XAML 代码
  • 使用 NodeJS 解包 PKCS#7 数据有效负载?

    我正在开发适用于 iOS 的 MDM NodeJS 服务器 在 Apple 文档中 给出了以下 ruby 代码 p7sign OpenSSL PKCS7 PKCS7 new req body store OpenSSL X509 Store
  • 国际象棋编程(无人工智能)——动作验证

    我正在尝试编写自己的国际象棋引擎 没有人工智能 我知道有国际象棋游戏入门套件 http www chessbin com page Chess Game Starer Kit aspx我观看它是为了获得灵感 但我没有注意到的是经过验证的动作
  • 如何在 docker-compose 中将主机网络与默认网络结合起来[重复]

    这个问题在这里已经有答案了 我正在构建包含两个容器的 docker compose 服务 这些容器之一 node 旨在支持自动发现机制 并且需要成为主机 LAN 的一部分 因为我需要由 LAN 路由器而不是内置的 docker 路由器处理多
  • 部署 Angular 项目错误类型 MIME (text/html)

    我尝试部署 Angular CLI 6 12 0 项目 当我将 dist 文件夹内容放在服务器上时 出现控制台错误 键入 MIME Le chargement du module l adresse http www sylvainalla
  • C# 中的多个 HTTP 请求

    我需要向不同的服务器并行发送大约 200 个 HTTP 请求并获得响应 我在 C 中使用 HttpWebRequest 类 但是 当并行处理请求时 我没有看到很好的时间改进 例如 如果一个请求需要 3 秒才能获得响应 则并行 2 个请求 6
  • 在 GithubActions CI 中安装用于 UWP 开发的 SDK?

    我正在尝试构建一些 UWP 库 但收到此错误 D a ZXing Net Xamarin ZXing Net Xamarin Source ZXing Net Mobile WindowsUniversal ZXing Net Mobile
  • matplotlib:图例标题的对齐

    在matplotlib中 如何调整图例标题 它始终居中 但我需要它与图例框左对齐 我尝试更改标题的文本艺术家的对齐方式 但没有效果 详细信息请参见以下示例 from pylab import x linspace 0 1 plot x x
  • Flutter:如何检查字符串中的字母是否相同[重复]

    这个问题在这里已经有答案了 我正在制作一个表单 供用户通过输入卖家的帐户名称和帐户类型来添加新卖家 但在将新卖家添加到firestore之前 它会检查该卖家是否存在 现在我的代码仅检查输入的名称是否与数据库中的名称非常相似 例如 数据库中有