Firebase 身份验证不适用于共享首选项

时间:2021-03-08 23:20:01

标签: flutter dart

我正在 Flutter 应用程序中开发身份验证服务

当我使用 Firebase 身份验证和共享首选项时,登录只能在 调试模式

发布模式不起作用:(,但是当我从登录方法中删除共享首选项时它起作用 在调试模式发布模式 :(

登录方法有效

  Future<void> signInWithTrafficUser(String email , String password) async {
    try {
      await _firebaseAuth.signInWithEmailAndPassword(email: email , password: password);
      final User user = _firebaseAuth.currentUser;
      _userId = user.uid;
      _userName = user.displayName;
      _email = user.email;
      _userProfilePic = user.photoURL;
      _userVerification = user.emailVerified;
      _showHint = false;
      _showHint2 = false;
      final userUrl= Uri.parse('https://taw3ia-ac6b2.firebaseio.com/UsersInfo/$_userId.json?user_id=$userId');
      final userGetData = await http.get(userUrl);
      final responseUserData = json.decode(userGetData.body);
      _userRank = responseUserData['userRank'];
      _userCity = responseUserData['userCity'];
      _userPoint = responseUserData['userPoint'];
      _userThemeMode = responseUserData['userMode'];
      notifyListeners();
    } on FirebaseAuthException catch (e) {
      throw HttpException(e.message);
    }

  }

登录方法无效

  Future<void> signInWithTrafficUser(String email , String password) async {
    try {
      await _firebaseAuth.signInWithEmailAndPassword(email: email , password: password);
      final User user = _firebaseAuth.currentUser;
      _userId = user.uid;
      _userName = user.displayName;
      _email = user.email;
      _userProfilePic = user.photoURL;
      _userVerification = user.emailVerified;
      _showHint = false;
      _showHint2 = false;
      final userUrl= Uri.parse('https://taw3ia-ac6b2.firebaseio.com/UsersInfo/$_userId.json?user_id=$userId');
      final userGetData = await http.get(userUrl);
      final responseUserData = json.decode(userGetData.body);
      _userRank = responseUserData['userRank'];
      _userCity = responseUserData['userCity'];
      _userPoint = responseUserData['userPoint'];
      _userThemeMode = responseUserData['userMode'];
      final prefs = await SharedPreferences.getInstance();
      final userData = json.encode(
        {
          'userId': _userId,
          'email' : _email,
          'userName' : _userName,
          'userPic' : _userProfilePic,
          'userCity':_userCity,
          'userPoint':_userPoint,
          'userRank':_userRank,
          'userMode' : _userThemeMode,
          'hint' : _showHint,
          'hint2' : _showHint2,
          'userVerification' : _userVerification,
        },
      );
      prefs.setString('userData', userData);
      notifyListeners();
    } on FirebaseAuthException catch (e) {
      throw HttpException(e.message);
    }

  }

**软件包版本:**

  shared_preferences: ^2.0.3 
  firebase_auth: ^1.0.0
  firebase_core: ^1.0.0

Flutter 和 Dart 版本:

Flutter 2.0.1 
Dart SDK version: 2.12.0 
<块引用>

注意:我在真实设备上测试应用

0 个答案:

没有答案