Я получаю карту из Firestore с парами ключей и логических значений и переносу их на локальную карту, создавая свой пользовательский интерфейс. Я пытаюсь использовать эти логические значения для изменения моего условия включения / выключения в плитках моего списка. Проблема в том, что я не могу сравнить эти значения. Я пытался сравнить их со значением «ложь», с жестко закодированной записью карты, в которой «ложь» имеет значение, и всегда получал ту же проблему, которая воспринимает их как совершенно разные вещи. Я был шокирован, когда я установил для первого и 23-го значения значение false в пожарном депо, а затем сравнил
map[22]=false;
(map1[0]==map[22]);
только для того, чтобы понять, что они разные. Если я распечатаю эти значения, я получаю {false} {false}. Похоже, они Карты, а не логические. Есть ли способ проверить, одинаковы ли они? Можете ли вы по-другому обойти эту проблему?
Содержимое моего пожарного хранилища - document-> {0: {0: true, 1: false}, 22: {0: false}.
I использовал StreamBuilder и внутри него поместил
Provider.of<Horarios>(context).setHorario(snapshot.data['turnos']);
, потому что я собирался использовать их в другом ListView.builder (). В этом listview.builder я хочу проверить
if (
{Provider.of<Horarios>(context).horario["${widget.hora}"]["$index"]} != {Provider.of<Horarios>(context).horario["${widget.hora}"]["22"].toString()}) {
print({Provider.of<Horarios>(context).horario["0"]["$index"]}.toString() );//This print, and
print({Provider.of<Horarios>(context).horario["${widget.hora}"]["22"]}.toString());//this print are the ones that even if they return the same string through console don't trigger the condition of equals.
return ListTile(
onTap: () => confirmarTurno(widget.hora, index, context),
enabled: false,
title: Text("Cancha $index"),
);
} else {
return ListTile(
leading: Icon(Icons.account_circle),
onTap: () => confirmarTurno(widget.hora, index, context),
enabled: true,
title: Text("Cancha $index"),
);
}