Как записать журнал в Firebase?

#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 в реальном времени не ведет доступный пользователю журнал операций, поскольку это быстро приведет к чрезмерным затратам.

Запись журнала с клиента, безусловно, является допустимым вариантом, как и добавление облачной функции для выполнения этой репликации за вас.

Если вы можете разумно воспроизвести проблему, я бы рекомендовал также запустить профилировщик базы данных, чтобы увидеть, показывает ли он какие-либо неожиданные операции.