Я настроил cloud-firestore
из базы огня. Здесь я хочу сохранить, если какой-то Магазин является любимым у пользователя. Поэтому я назначил каждому магазину избранный документ с полем -
"color:" "grey" или "color:" "red".
Чтобы изменить значение в firestore
, я получаю к нему доступ с помощью этого оператора if:
if (Firestore.instance.collection("favorites")
.document(user1')
.collection('shops')
.document("$index").toString() == "grey") {...}
Это не имеет никакого эффекта. Программа сразу переходит к оператору else. В Firestore
document 0
выглядит так:
цвет: "серый".
В этом случае 0 обозначает первый магазин. Я применил к нему число 0, чтобы получить доступ к магазинам по индексу.
Я думаю, что-то не так с моим оператором if, функция else, которая изменяет значение в firestore
, выглядит точно так же, за исключением toString() == 'grey'
.
else {Firestore.instance.runTransaction((transaction) async {
await transaction.set(Firestore.instance.collection("favorites")
.document('dd')
.collection('shops')
.document("$index"), {'color': 'grey',});
});
}
У меня такая же проблема с условным оператором, с помощью которого я выбираю цвет со значениями в поле. При этом я хочу получить доступ к пожарному магазину и посмотреть, какое значение применяется к каждому магазину:
Firestore.instance.collection('favorites')
.document('dd')
.collection("shops")
.document("1").toString() == "grey" ? Colors.grey : Colors.red ,
Та же самая проблема здесь, он сразу же переходит на красный цвет, и каждый магазин помечается как любимый.