#firebase #flutter #firebase-realtime-database
#firebase #flutter #firebase-база данных в реальном времени
Вопрос:
Мое приложение записывает потребление пищи в двух местах в базе данных, а затем скидывает инвентарь. При просмотре две записи выполняются правильно, но инвентаризация не обновляется до правильного значения. Я хотел бы увидеть журнал о том, произошла ли ошибка или как обновляется инвентарь (я подозреваю, что иногда он дважды сбрасывается со счетов), но я не знаю, как это сделать, поскольку я не вижу печать в консоли (приложение находится в альфа-тестировании с удаленными пользователями).
Есть ли какой-либо способ увидеть или зарегистрировать, что происходит в базе данных (журнал)?
Я использую .push().set
для записи двух записей в Firebase, и я использую ServerValue.increment
для обновления инвентаря таким образом.
Future<bool> descontarAlimento(String idEmpresa, String idAlimento, double consumo) async {
try {
db.child('bodega/alimento/$idAlimento/cantidad')
.set(ServerValue.increment(-consumo.round()));
} catch (e) {
print(e);
}
return true;
}
Я подумываю о том, чтобы добавить одну строку в запись как
db.child('logs').push().set('Inventory discounted in $consumo')
и одна строка, следующая print(e)
за as
db.child('errors').push().set('Inventory error $e')
, но я не уверен, что это хорошая идея.
Каков наилучший способ просмотра или записи «журнала операций записи» в Firebase?
Ответ №1:
База данных Firebase в реальном времени не ведет доступный пользователю журнал операций, поскольку это быстро приведет к чрезмерным затратам.
Запись журнала с клиента, безусловно, является допустимым вариантом, как и добавление облачной функции для выполнения этой репликации за вас.
Если вы можете разумно воспроизвести проблему, я бы рекомендовал также запустить профилировщик базы данных, чтобы увидеть, показывает ли он какие-либо неожиданные операции.