首页 > 解决方案 > Firebase 身份验证不适用于共享首选项

问题描述

我正在开发 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 2.0.1 
Dart SDK version: 2.12.0 

注意:我在真实设备中测试应用程序

标签: flutterdart

解决方案


推荐阅读