Я пытаюсь создать опцию «выбрать избранную» для пиктограммы пользователя без аутентификации, в которой при щелчке по значку (в списке заголовков данных ListView of Firestore (названий книг)) он сохраняет данные для перенаправления новая страница избранного. Я не могу найти информацию о том, как это сделать, в документации Firestore, но я нашел учебник для YouTube, который делает это для популярного приложения WordPair. Вот строка, используемая для хранения их данных 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');
finalreadySaved = Firestore.instance.collection ("books"). Document ('title');
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 УжеSaved = 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 не определены для типа Функция