如何确定用户是否从Firebase手动身份验证或Google身份验证Flutter登录

时间:2020-06-27 17:04:34

标签: firebase flutter dart firebase-authentication google-signin

我的问题是如何找出当前登录的用户是否已使用Firebase手动登录或google登录进行了身份验证?

当我尝试访问类FirebaseUser的用户属性时,当我尝试访问providerID时,即使我当前是通过Firebase通过Google登录提供程序登录的,它也会返回“ Firebase”。那么,有什么办法可以找出用户使用了哪个提供商来注册应用程序?

非常感谢您的帮助。下面是我已经编写的代码。

Future<FirebaseUser> getFirebaseUser() async {
    FirebaseUser user = await _auth.currentUser();
    print(user.email);
    return user;
  }

  @override
  void initState() {
// TODO: implement initState
    super.initState();
    startTimer();
  }

  void startTimer() {
    timer = Timer.periodic(Duration(seconds: 2), (timer) {
      if (getFirebaseUser() != null) {
// I Need to push to the menu screen while providing the parameters so that it can recognise if the user is from Firebase Manual Auth or google sign in provider.
        //print(_user.providerId);
//        Navigator.push(context, MaterialPageRoute(
//            builder: (context)
//            {
//          SideBarLayoutStateful(app: MenuScreen(), isFromGoogleSignIn: ,resultUser: _user, profilePicture: _user.photoUrl,);
//        }
        //));
      }
      Navigator.pushNamed(context, 'welcome');
      timer.cancel();
    });
  }

我需要在提供参数的同时按下菜单屏幕,以便它可以识别用户是来自Firebase手动身份验证还是来自Google登录提供商,这会影响菜单屏幕上显示的内容。

感谢您的帮助,我非常感谢! 这是否应该发生: enter image description here

Future<FirebaseUser> getFirebaseUser() async {
    FirebaseUser user = await _auth.currentUser();
    print(user.email);
    print(user.providerId);
    return user;
  }

enter image description here

0 个答案:

没有答案