Я создаю программу, которая после регистрации получает данные о пользователе из документа в базе данных, рядом с некоторой информацией сохраняют в sharedPreferences, а некоторые показывают на экране.
Но я могу читать данные с нужного мне документа.
class crudMedthods{
getDataUser(Data) async {
return await
Firestore.instance.collection('users').document(Data).get(); } }
class LoginScreen extends StatefulWidget { @override
_LoginScreenState createState() => _LoginScreenState(); }
class _LoginScreenState extends State<LoginScreen> {
TextEditingController username = TextEditingController();
SharedPreferences sharedPreferences;
crudMedthods crudObj = crudMedthods();
var user;
Future<void> signIn() async {
final formState = _formKey.currentState;
if (formState.validate()) {
formState.save();
await FirebaseAuth.instance.signInWithEmailAndPassword(
email: username.text, password: password.text);
try {
Navigator.push(
context, MaterialPageRoute(builder: (context) => HomeScreen()));
} catch (e) {
print(e.message);
}
} }
@override Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
resizeToAvoidBottomPadding: false,
body: ListView(children: <Widget>[
Column(children: <Widget>[TextFormField(
controller: username,
decoration: InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(
color: Colors.lightBlue[50], width: 10),
borderRadius: BorderRadius.circular(26.0)),
contentPadding: EdgeInsets.symmetric(vertical: 17.0, horizontal: 10.0),
hintText: "username",
fillColor: Colors.teal[200].withOpacity(0.3),
filled: true,
labelText: 'Email',
),
keyboardType: TextInputType.emailAddress,
),
RaisedButton(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(25.0),
side: BorderSide(
width: 1, color: Color(0xffd50000))),
color: Color(0xffd50000),
onPressed: () async {
crudObj.getDataUser(username.text).then((results) {
setState(() {
user = results;
});
});
signIn();
sharedPreferences =
await SharedPreferences.getInstance();
sharedPreferences.setString(
"username", username.text);
sharedPreferences.setBool(
"isAdmin", user["isAdmin"]);
},
child: Text(
'Sign in with Email',
style: TextStyle(
fontSize: 20,
color: Colors.white,
),
),
),
])
]),
),
);
} }
Как я могу читать данные, а затем сохранять их в sharedPreferences или показывать на экране.
Любая помощь очень ценится.