从Flutter应用(从客户端)创建多个Firebase Auth用户

时间:2019-09-07 20:10:11

标签: firebase flutter firebase-authentication

我正在开发一款Flutter Firebase应用,该应用将同时适用于零售商和管理员用户。当零售商下载该应用程序时,他/她必须提供电话号码身份验证详细信息以及所有其他强制性详细信息,并且必须提交。管理员将收到请求,并且一旦管理员批准,零售商将能够登录并能够查看产品。如果零售商是该应用程序的新手,则该管理应用程序具有创建零售商的额外功能。管理员想从他的应用程序中添加零售商,然后管理员应提供零售商的电话身份验证,并且需要创建所有其他零售商详细信息和Firebase用户。

问题在这里:管理员正在提供零售商的电话号码,并且在给出了OTP之后,正在创建零售商的用户,但是在关闭管理应用但未注销的情况下,如果打开了管理应用,则管理员应用会显示由零售商最近创建的“零售商”详细信息,可能是由于缓存。

创建用户后,我尝试退出创建的用户,但是找不到任何方法可以从应用中退出特定用户。

我希望可以从单个应用创建多个Firebase身份验证用户。

请在代码段下方找到。

String _userId = "";
  void _signInWithPhoneNumber() async {

    setState(() {
      _isLoading = true;
    });


    final AuthCredential credential1 = PhoneAuthProvider.getCredential(
      verificationId: _verificationId,
      smsCode: _smsCodeController.text,
    );
    try {
      final FirebaseUser user1 =
      (await db1.signInWithCredential(credential1));

      setState(() {
        _isLoading = false;
        _errorMessage = 'OTP verified Successfully !!';
        if (user1 != null) {
          print("Pranay Kumar value of newly created user  ${user1.uid}");
           db1.signOut();

          getCurrentUser().then((user) {
            setState(() {
              if (user != null) {
                _userId = user?.uid;
                print("Hello Pranay current Admin User $_userId");
              }
            });
          });

          print("Pranay Kumar value of newly created user  222  ${user1.uid}");
          Navigator.push(
              context,
              MaterialPageRoute(
                  builder: (context) =>
                      CreateCustomerDetailedPage(
                          userId: user1.uid,
                          phoneNumber: _phoneNumberController.text)));

          //getUserDetails(user.uid);
        } else {
          _isLoading = false;
          _errorMessage = 'Sign in failed';
        }
      });
    } catch (e) {
      print('Error: $e');
      setState(() {
        _isLoading = false;
        _errorMessage = e.message;
      });
    }
  }

  Future<FirebaseUser> getCurrentUser() async {
    FirebaseUser user = await FirebaseAuth.instance.currentUser();
    return user;
  }

新创建的打印语句的用户值变为空后,我不希望“ Hello Pranay当前管理员用户”

0 个答案:

没有答案