Я пытаюсь создать параметр `` выбрать избранное '' значка НЕАутентифицированного пользователя, где, если щелкнуть значок (в списке заголовков в ListView данных Firestore (заголовки книг)), он сохраняет данные, которые будут перенаправлены в новое избранное страница. Я не могу найти информацию о том, как это сделать, в документации Firestore, но я нашел учебник на YouTube, который делает это для популярного приложения WordPair flutter. Вот строка, используемая для хранения их данных WordPair:
final _randomWordPairs = <WordPair>[];
и еще одна переменная, чтобы проверить, были ли уже сохранены списки WordPair:
final _savedWordPairs = Set<WordPair>[];
Если моя строка данных Firebase
Firestore.instance.collection("titles").snapshots()
что эквивалентно указанным выше переменным WordPair, чтобы я мог создать этот список избранного со списком моих заголовков
snapshot.data.documents[index]['title']
Ничего не работает. Все еще пытаюсь разобраться: переменные:
final savedDb = Firestore.instance.collection("books").document('title');
final ужеSaved = Firestore.instance.collection ("книги"). документ ('название');
Код ListTile для его вызова:
trailing: Icon( alreadySaved ? Icons.favorite :
Icons.favorite_border,
color: alreadySaved ? Colors.red : null),
onTap: () {
setState(() {
if(alreadySaved) {
savedDb.remove('title');
}else{
savedDb.add('title');
}
});
}
Я пробовал это, но теперь эта страница просто вылетает;
final alreadySaved = Firestore.instance.collection("books").where((item) => item.contains("title"));
List<String> savedDb = ['Firestore.instance.collection("books").document(title)'];
trailing: Icon( alreadySaved == null ? Icons.favorite :
Icons.favorite_border,
color: alreadySaved != null ? Colors.red : null),
onTap: () {
setState(() {
savedDb.add('title');
});
},
Последняя попытка:
bool alreadySaved = false;
savedDb() async{
DocumentSnapshot ds = await
Firestore.instance.collection("books").document('title').get();
this.setState(() {
alreadySaved = ds.exists;
});
}
@override
void initState() {
super.initState();
savedDb();
}
а onTap говорит, что .remove и .add не определены для типа Function, и мои значки даже не меняют цвет. Это невозможно
onTap: () {
setState(() {
if(alreadySaved) {
savedDb.remove('Firestore.instance.collection("books")');
}else{
savedDb.add(Firestore.instance.collection("books"));
}
});
},
Возвращает .remove, а .add не определен для типа Function.