我已经实现了以下代码.问题是,我需要知道用户帐户是否已创建,以便将用户转发到主屏幕.但是,由于我返回的是Fluttertoast(向用户显示错误消息),所以不能返回NULL.所以我想判断返回值是否为Fluttertoast.我怎么能做到这一点?或者,有没有更好的方法来实现这一点?

Future registerWithEmailAndPassword(
  {required String email,
  required String password,
  required String userName,
  required String gender}) async {
try {
  UserCredential result = await _auth.createUserWithEmailAndPassword(
      email: email, password: password);
  User? user = result.user;
  // create a new document for the user with the uid
  await DatabaseService(uid: user!.uid)
      .updateUserData(gender: gender, userMail: email, userName: userName);
  return user;
} catch (error) {
  return Fluttertoast.showToast(
      msg: error.toString(),
      gravity: ToastGravity.TOP,
      backgroundColor: Colors.black,
      textColor: Colors.white);
}

}

基本上,然后我想实现一条if语句来判断是否创建了用户帐户(然后返回flttertoast).类似于:

 if (result == FToast()) {
                              print("user not created");
                            }

推荐答案

try 返回null而不是Fluttertoast.

将代码更改为

Future registerWithEmailAndPassword(
  {required String email,
  required String password,
  required String userName,
  required String gender}) async {
try {
  UserCredential result = await _auth.createUserWithEmailAndPassword(
      email: email, password: password);
  User? user = result.user;
  // create a new document for the user with the uid
  await DatabaseService(uid: user!.uid)
      .updateUserData(gender: gender, userMail: email, userName: userName);
  return user;
} catch (error) {

  Fluttertoast.showToast(
      msg: error.toString(),
      gravity: ToastGravity.TOP,
      backgroundColor: Colors.black,
      textColor: Colors.white);
return null;
}

在此处显示 cogo toast 并返回空值.

因此,您可以在toast和late中看到错误,您可以判断用户创建的用户值是否为空.

if (result == null) {
     print("user not created");
}

Flutter相关问答推荐

Android元数据为1.9.0,预期版本为1.7.1,如何解决flutter应用程序构建失败问题?

如何创建一个按钮来在Ffltter Webview中转到上一页?

Flutter 对齐:不适用于多行文字

SupabaseFlutter 集成问题:无法更新行

我不能在Fighting中裁剪图片输入错误,否则应用程序会崩溃

我有相关的下拉菜单Flutter Windows应用程序的问题

Flutter :执行com.android.build.gradle.internal.tasks.MergeNativeLibsTask$MergeNativeLibsTaskWorkAction时出现故障

火焰Flutter 在多个向量之间插补2

构建方法中的性能声明小部件

如何在flutter中实现这样的底部导航栏?

运行任何 flutter 命令都会显示无法安装 <版本>

如果不刷新页面,我看不到从 Firestore 中提取的数据

java.lang.IncompatibleClassChangeError:找到接口 com.google.android.gms.location.SettingsClient,

如何在 flutter 中同时使用 ButtonStyle() 和 ElevatedButton.styleFrom() ?

为什么轮播加载图片很慢?

我正在try 使用 Firebase 在 Flutter 中使用 Google 注销,但它不起作用

如何让多个图标转到不同的网址

如何在dart中编写多个条件?

如何从圆角go 除背景 colored颜色

如何验证位于 PageView 内不同页面的 TextFormFields