Впервые во Флаттере, и хотя я уже много лет занимаюсь программированием, это мой первый опыт разработки. Я пытался выяснить, как сделать запрос к облачному хранилищу пожаров и сопоставить одно из этих свойств с общим предпочтением. Поскольку мое приложение общается с облачным пожарным хранилищем, когда пользователь входит в систему, я чувствую, что могу обновить свои общие настройки несколькими полями, которые избавят меня от необходимости вызывать пожарное хранилище каждый раз, когда я хочу получить эту информацию.
Я создал класс, который представляет макет коллекции в хранилище
class FirestoreUser {
FirestoreUser(this.aboutMe, this.nickname);
final String aboutMe;
final String nickname;
factory FirestoreUser.fromMap(Map<String, dynamic> data) {
if (data == null) {
return null;
}
final String aboutMe = data['aboutMe'];
final String nickname = data['nickname'] ?? '';
return FirestoreUser(aboutMe, nickname);
}
Map<String, dynamic> toMap() {
return {
'aboutMe': aboutMe,
'nickname': nickname,
};
}
}
У меня также есть функция, которая записывает данные в коллекцию Firestore. Это работает просто отлично.
С чем мне тяжело, как я могу запросить "aboutMe" в коллекции выше? Я использую провайдера для получения UID, но как мне сделать что-то вроде этого:
aboutMe = Firestore.query.tothatdocument
Вот то, над чем я работаю до сих пор:
final user = Provider.of<User>(context, listen: false);
final firestore = Provider.of<FirestoreService>(context, listen:false);
final firebaseUser = await FirebaseAuth.instance.currentUser();
final QuerySnapshot result = await Firestore.instance.collection('users').where('id', isEqualTo: firebaseUser.uid).getDocuments();
final List<DocumentSnapshot> documents = result.documents;
SharedPreferences prefs = await SharedPreferences.getInstance();
И я хотите сделать что-то вроде этого:
prefs.setString('aboutMe', 'thatAboutMeVariable);
Возможно ли это? Я думаю, что мне не хватает захвата потока в качестве снимка? но не уверен.
Еще раз спасибо!