如何在颤振中打印'User'实例的值?

  • 本文关键字:User 实例 打印 flutter
  • 更新时间 :
  • 英文 :

class User {
String token;
User({this.token});
} 
class AuthService {
final String url = 'https://reqres.in/api/login';
final controller = StreamController<User>();
Future<User> signIn(String email, String password) async {
final response =
await post(url, body: {'email': email, 'password': password});
final data = jsonDecode(response.body);
final user = _userFromDatabaseUser(data);
// print(user.token);
controller.add(user);
return user;
}
//create user obj based on the database user
User _userFromDatabaseUser(Map user) {
return user != null ? User(token: user['token']) : null;
}
//user stream for provider
Stream<User> get user {
return controller.stream;
}
}
//in Sign in page 
onPressed: () async {
if (_formKey.currentState.validate()) {
dynamic result = await _auth.signIn(email, password);
print(result); // Instance of 'User'                                        
}
}

我是个初来乍到的人,我想制作一款只对用户进行身份验证的应用程序。我正在尝试从流中读取用户令牌数据。如果我得到了令牌,请检查令牌是否为空,然后转到主页,否则它将显示错误我如何打印或存储令牌值?

您可以在登录后获得用户:

User result = await _auth.signIn(email, password);

然后看看你能做的数据是

print(result.token);

它将为您提供令牌,然后您可以使用共享的prefrences来存储您的令牌并访问它。查看it的文档:https://pub.dev/packages/shared_preferences

您可以使用overrideObject.toString方法。

您可以在User类中添加此方法来打印令牌,而不是Instance of 'User'

@override
String toString() {
// TODO: change the below return to your desired string
return "token: $token";
}

您可以使用打印

print(userModel.toString());

最新更新