Flutter-使用Google_Sign_In包中的SignInWithEmailAndPassword()时出现问题

时间:2018-10-25 16:10:43

标签: dart flutter google-signin flutter-dependencies

我仍然对Flutter有所了解,我正在寻找一种简单的方法来实现登录表单以及Google登录按钮。我设法使两者都独立工作(在不同的应用程序上),但我想将两者合并为一个“ Auth”对象。

我发现的最佳示例是使用google_sign_in(v3.2.2)程序包,该程序包已成功实现了“ Google登录”功能。因此,下一步是让用户选择创建一个帐户并使用普通的登录表单来验证其帐户(因为并非每个人都有一个Google帐户)。普通的登录表单将引用Firebase的身份验证服务。

所以我注意到该程序包包含一个名为signInWithEmailAndPassword()的方法

可以使用以下代码调用

Future<Null> _handleFireBaseSignIn() async {
  await Auth.signInWithEmailAndPassword(email: 'test@test.com', password: 'tester');
}

哪个是google身份验证功能的副本,其调用方式如下:

Future<Null> _handleSignIn() async {
  await Auth.signIn();
}

但是,对身份验证方法所需的电子邮件/密码进行了硬编码。请注意:我以前已经在Firebase上使用test@test.com/tester凭据设置了一个帐户。

这两个选项现在都可以对用户进行身份验证。由-print('Email: - ' + Auth.email);

输出

然后,示例使用_currentUser不为null的情况来构建页面:

Widget _buildBody() {
  if (_currentUser != null) {
    ...
  } else {
    ...
  }
}

这就是我被困住的地方。首先,我不确定是否应该尝试填充_currentUser变量(类型为GoogleSignInAccount)还是应该引用可以以类似方式检查的新变量?

1 个答案:

答案 0 :(得分:0)

我相信有一个getCurrentUser函数可以让您填充currentUser变量。