Ошибка функций Flutter Firebase: база данных не определена - PullRequest
0 голосов
/ 29 марта 2020

Я создал функцию удаления старых файлов для моей базы данных, которая удаляет узлы из моих сообщений чата. Я использовал пример функции, предоставляемой Firebase, и обновил ее, чтобы она соответствовала моим потребностям. Моя структура базы данных databaseName/messages/{pushId}, и я добавил const functions = require('firebase-functions') и const admin = require('firebase-admin') и admin.initializeApp(). Вот что у меня есть ...

exports.deleteOldItems = functions.database.ref('messages/{pushId}').onWrite(async (change) => {
  const ref = change.after.ref.parent; // reference to the parent
  const now = Date.now();
  const cutoff = (DateTime.now().millisecondsSinceEpoch - CUT_OFF_TIME);
  const oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff);
  const snapshot = await oldItemsQuery.once('value');
  // create a map with all children that need to be removed

  const updates = {};
  snapshot.forEach(child => {
    updates[child.key] = null;
  });
  // execute all updates in one go and return the result to end the function
  return ref.update(updates);
});

Когда я просматриваю свои журналы функций, я получаю следующие ошибки ...

ReferenceError: DateTime не определено в exports.deleteOldItems.functions.database.ref.onWrite (/srv/index.js:17:18) в cloudFunction (/srv/node_modules/firebase-functions/lib/cloud-functions.js:131:23 ) в /worker/worker.js:825:24 в at process._tickDomainCallback (внутренняя / process / next_tick. js: 229: 7)

И мои функции заканчиваются со статусом : ошибка. Есть идеи, что может происходить?

1 Ответ

0 голосов
/ 29 марта 2020

DateTime не является допустимым JavaScript объектом или идентификатором. Если вы хотите работать с датами и временем, вам нужно будет работать с датой, так как вы находитесь в строке чуть выше, где у вас есть DateTime. Вам, вероятно, следует ознакомиться с документацией JavaScript для Дата , чтобы узнать, как она работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...