【发布时间】:2018-09-02 12:58:54
【问题描述】:
我正在关注Firebase for Flutter Codelab,在8th step 上有这个_ensureLoggedIn() 函数:
final _googleSignIn = new GoogleSignIn();
final _auth = FirebaseAuth.instance;
Future<Null> _ensureLoggedIn() async {
GoogleSignInAccount user = _googleSignIn.currentUser;
if (user == null)
user = await _googleSignIn.signInSilently();
if (user == null) {
await _googleSignIn.signIn();
analytics.logLogin();
}
if (await auth.currentUser() == null) {
GoogleSignInAuthentication credentials =
await _googleSignIn.currentUser.authentication;
await auth.signInWithGoogle(
idToken: credentials.idToken,
accessToken: credentials.accessToken,
);
}
}
作为 Flutter 和 Firebase 框架的新手,我真的很难理解其背后的逻辑:首先我们尝试使用 GoogleSignIn 包记录用户,然后不管我们将在 @987654326 中拥有什么@ 我们尝试使用FirebaseAuth 再次对用户进行身份验证,这反过来也将使用GoogleSignIn。
你能解释一下为什么我们两者都做吗? 我的目标是为打开我的应用程序的用户提供两个单独的屏幕 - 一个用于未授权/匿名(将具有登录和注册选项),另一个用于将看到正常应用程序界面的授权用户。
【问题讨论】:
标签: firebase dart google-signin flutter