Flutter FirebaseAuth:当电子邮件地址格式错误时,SignInWithEmailAndPassword 无法处理错误

2024-04-13

这是我的 FirebaseAuthService 类中的电子邮件登录方法:

  @override
  Future<UserCustom> signInWithEmail(
      String emailAddress, String password) async {
    try {
      UserCredential _signInWithEmailAndPasswordGoogle = await _auth
          .signInWithEmailAndPassword(email: emailAddress, password: password);
      if (_signInWithEmailAndPasswordGoogle.user != null) {
        return _userToUserModel(_signInWithEmailAndPasswordGoogle.user);
      } else {
        throw PlatformException(
            code: 'SIGN_IN_INTERRUPTED', message: 'Sin in interrupted');
      }
    } on PlatformException {
      print('Happened');
      rethrow;
    } 
  }

这是应该处理异常的地方:

  // creating the submit function
  Future<void> _submit(EmailSignInModelProviderPattern model) async {
    // if it is on sign in use sign in function ELSE use register function
    try {
      await model.submit();
      Navigator.pop(context);
    } on PlatformException catch (e) {
      CustomErrorPlatformException(
        title: 'Sign in failed',
        exception: e,
      ).show(context);
    } catch(e){
      print(e.toString());
    }
  }

And yet when I enter a badly formatted address the process is interrupted at message_codecs.dart file at the method dynamic decodeEnvelope(ByteData envelope){... line 572 with error message: See screenshot

发生异常。平台异常 (平台异常(firebase_auth, com.google.firebase.auth.FirebaseAuthInvalidCredentialsException: 电子邮件地址格式错误。, {code: invalid-email, 附加数据:{},消息:电子邮件地址格式错误。}))

我不知道如何处理这个异常,因为我知道在升级到 firebase_auth 之前它从未发生在我身上:^0.18.0+1.


检查这个问题,它解释了为什么会发生https://github.com/FirebaseExtended/flutterfire/issues/1760 https://github.com/FirebaseExtended/flutterfire/issues/1760

。 如果您使用模拟器并使用选项卡按钮更改文本字段,则该电子邮件字段上会留下额外的空格 ->*[电子邮件受保护] /cdn-cgi/l/email-protection *

为了避免这个额外的空间,你必须使用.trim() method.

在你的情况下

UserCredential _signInWithEmailAndPasswordGoogle = await _auth
          .signInWithEmailAndPassword(email: emailAddress.trim(), password: password);

我想这可以解决你的问题。

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

Flutter FirebaseAuth:当电子邮件地址格式错误时,SignInWithEmailAndPassword 无法处理错误 的相关文章

  • 编辑模板身份验证 Firebase

    您好 我使用 Firebase 启动了一个新应用程序 然后执行身份验证方法 但我需要编辑电子邮件地址验证和更改电子邮件地址的模板 这两个选项无法编辑 但重置密码后可以编辑模板 字段 消息 该消息仅在选项 电子邮件地址验证和更改电子邮件地址
  • 如何增加颤振中切屑的宽度

    我想增加宽度Chip 我怎样才能实现这个目标 Chip elevation 6 0 backgroundColor Colors white shape RoundedRectangleBorder borderRadius BorderR
  • 仅针对某些异常类型中断

    我知道异常处理是一件非常重要的事情 我们在所有项目中都在这样做 主要原因是记录客户发生的错误 这工作正常 根本不是问题 但是 当我仍在使用 Visual Studio 编码和运行应用程序时 我根本不需要任何异常处理 我希望调试器正好停在应用
  • 有没有办法模拟小部件或屏幕特定位置的触摸?

    我想触摸或点击小部件上的某处 而不让用户在此时明确触摸屏幕 有什么办法可以做到吗 我已经检查了SO答案 有些人建议使用 集成测试 但在未物理或以某种方式连接到笔记本电脑的设备上无法执行 集成测试 无法找到更好的措辞 我还尝试进行 hitTe
  • 将 Flutter 前端与适用于 Android 和 iOS 的 .NET Core 后端相结合

    目前在一家使用 NET 不是 Core 的公司工作 但希望切换到 NET Core 并想通过创建一个具有 Flutter io 前端和 NET Core 后端的应用程序来实现这一目标 带后端的应用程序只是为了了解 NET Core 的功能
  • DataContext.CreateDatabase() 表示文件已存在 - 但事实并非如此

    这可能是 Windows 7 问题 但调用 using var context new DataClassesDataContext if context DatabaseExists context CreateDatabase 结果出现
  • 三层 Asp.Net 应用程序中的异常处理

    1 据我了解 在three tierAsp Net应用程序我们应该通过以下方式实现异常处理 a 我们应该把try catch围绕代码块 位于三层中的任何一层 我们希望页面能够从该代码块正常恢复 当此代码生成异常时 b 我们不应该放try c
  • 如何将exe异常路由回VB6应用程序?

    我有一个 vb6 应用程序 它将调用 mencoder exe 它是 mplayer 的一部分 用于将某些文件转换为 flv 格式 每当我尝试转换这个 opendivx 文件时 我都会从 mencoder 收到这个奇怪的未处理异常问题 目前
  • 如何捕获生成器抛出的异常并恢复迭代?

    我有一个生成器 它将值的集合传递给方法并生成结果 调用的方法可能会返回异常 发生这种情况时 我希望异常转到调用生成器来处理异常的代码 然后继续循环生成器 为了说明这一点 下面是一个生成器的示例 它将产生1 抛出一个 Exception 然后
  • 如何在 Flutter 中对 RaisingButton 的颜色进行动画处理?

    我有一个RaisedButton 我想要animate它的颜色来自green to red 反之亦然 每次用户单击它时 这怎么能做到呢 您可以使用AnimatedContainer https api flutter dev flutter
  • 捕获 SQLAlchemy 异常

    我可以使用什么捕获 SQLAlechmy 异常的上层异常 gt gt gt from sqlalchemy import exc gt gt gt dir exc ArgumentError CircularDependencyError
  • 在 ListView 上构建期间调用 setState() 或 markNeedsBuild()

    所以我试图重构我的 listView 逻辑 基本上我的 ListView 的 UI 逻辑变得很麻烦 所以我决定 为什么不将 UI 逻辑的某些部分移动到另一个类 这是我的代码 列表页 dart import package flutter m
  • 我想将对象列表添加到 firestore 文档中,-flutter

    我想将对象列表添加到 firestore 文档 我定义了产品数据模型 我还有类别数据模型 我想将类别列表添加到 firestore 中的产品文档中 我将类别添加到临时列表 然后将值放入product categories 产品 类别 类别t
  • 如何在flutter中实现字母滚动

    有没有任何插件或方法可以在 flutter 中实现这种滚动 具体来说 右侧的字母列 例如突出显示当前字母表字母 或者如果点击某个字母 则滚动视图会直接转到该字母标题 为了按字母顺序排序 我们可以这样做List sort 对于粘性标题 我们也
  • 如何单独捕获这些异常?

    我正在编写一个与 Quickbooks 交互的 Python 程序 连接到 Quickbooks 时 根据问题的不同 我可能会遇到以下两个常见异常之一 pywintypes com error 2147352567 Exception oc
  • 如何根据数据值过滤flutter中的Hive数据?

    在颤振中 我使用ValueListenableBuilder用于获取配置单元数据列表的小部件 我正在尝试按数据值过滤数据 例子 Key 1 name value mydata1 des value mydescription1 value
  • 如何在多个包之间共享analysis_options.yaml 文件?

    我正在开发一个Flutter Module 多种的Flutter Plugins 他们之间的关系是 module取决于所有plugins 所有插件均未发布到 pub 并使用 git 依赖项 我现在需要添加analysis options y
  • 带 NestedScrollview 的 RefreshIndicator

    我想要 2 个带有 ListView 的选项卡页共享一个 RefreshIndicator 但是 RefreshIndicator 必须具有 Scrollable 作为子级 TabBarView 则不然 因此我尝试为每个选项卡创建 2 个
  • Dart:如何在本机扩展中创建流

    在我的本机扩展中 我需要将整数流式传输到我的 Dart 控制台应用程序 在概念上非常相似 标准输入 如何创建向控制台应用程序公开的本机 Dart Stream 对象 我尝试为您创建一个示例并将其放在 github 上 https githu
  • Flutter 中没有上下文的 AlertDialog

    我想在 http 获取失败时显示 AlertDialog 函数显示对话框 https api flutter dev flutter material showDialog html https api flutter dev flutte

随机推荐