flutter - 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
注意:我在真实设备中测试应用程序
解决方案
推荐阅读
- python-3.x - 将 ssd_mobilenet 转换为 tensorflow lite 会抛出 ConverterError: TOCO failed。有关信息,请参见控制台
- c# - 在 ASP.NET Core 中重用 ASP.NET 身份系统?
- javascript - 无法从通过调用 asyncStorage 函数返回值的 Async 函数获取值
- javascript - 当输入新值被传递时,它不会自动影响#np 和#total_amount,直到我刷新网页
- sql - 如果查询未产生任何结果,则使用默认值填充记录
- android - Firebase 数据的变化不会得到更新
- android - 即使通过搜索包名称,我的应用程序已发布但未在 Playstore 中显示
- java - Wildfly 开始返回 UT000128: Remote peer closed connection before all data can be read
- django - 带有外键的模型上的Django分页
- if-statement - 将两个公式添加到一个单元格