首页 > 解决方案 > Dart 方法有错误但不返回错误

问题描述

我正在查看颤振的 firebase 身份验证文档。

具体来说,我正在查看这些文档中的 FirebaseAuth.createUserFromEmailAndPassword 方法。

在文档中,它列出了三个错误。但是我很困惑这些错误是如何传回给调用者的。它没有提供有关这些错误类型的信息。我在这里真的很困惑。如果它不返回错误类型,并且不将错误输出参数作为输入,那么该方法应该如何传达错误?

显然有三个错误只是漂浮在以太中,我无法掌握大声笑。

标签: flutterdart

解决方案


该方法将抛出一个AuthException. 异常将有一个code字段。代码字段的内容将准确解释问题所在。

  • ERROR_WEAK_PASSWORD - 如果密码不够强。
  • ERROR_INVALID_EMAIL - 如果电子邮件地址格式错误。
  • ERROR_EMAIL_ALREADY_IN_USE - 如果电子邮件已被其他帐户使用。

你可以像处理 Dart 中的任何其他异常一样处理这些错误:使用 try/catch。

try {
  var result = await FirebaseAuth.createUserFromEmailAndPassword(...);
} catch (e) {
  if (e is AuthException) {
    switch (e.code) {
      case 'ERROR_WEAK_PASSWORD':
        // Handle weak password
        break;
      case 'ERROR_INVALID_EMAIL':
        // Handle invalid email
        break;
      case 'ERROR_EMAIL_ALREADY_IN_USE':
        // Handle email in use
        break;
    }
  } else {
    // An error other than an AuthException was thrown
  }
}

推荐阅读