У меня есть метод firestore, который вызывается на разных экранах. Я использую Firestore в качестве базы данных. Я использую Provider для инъекций.
Provider<Database>(create: (_) => FirestoreDatabase(uid: uid)),
В классе базы данных есть метод setData
, который записывает число в Firestore. Я называю это так:
final database = Provider.of<Database>(context);
await database.setScreenNumber(VoterData(screenState:screenPage));//setData is abstracted away
Все работает как должно для моего первого экрана: ie значение 1 хранится в Firestore. Вызывается метод setScreenNumber
и устанавливается значение. Когда я go на второй экран, вызывается тот же метод, и значение мгновенно изменяется на правильное значение, но затем возвращается к исходному значению. Из оператора печати я вижу, что метод setScreenNumber
вызывается снова на первом экране () (без загрузки этого экрана нет вывода на печать из initState
). Почему мой провайдер вызывает метод agin с первого экрана?