Облачные функции для Firebase: получить дату создания дочернего элемента из базы данных

Я пытаюсь создать функцию, которая запускает все дочерние элементы из определенного узла, чтобы выполнить что-то с теми, которые были созданы ровно x дней назад. Я уже создал cron на своем сервере для вызова функции один раз в день. Моя проблема в том, что я не нахожу, как перебрать всех детей из узла и узнать дату их создания. Есть ли функция для этого или нужно поставить поле с датой создания?


person filol    schedule 28.03.2017    source источник
comment
Вам нужно создать запрос, который определяет интересующие вас узлы. Возможно, вы захотите прочитать документы и посмотреть пример кода для базы данных Firebase Realtime, чтобы узнать, как все работает. firebase.google.com/docs/database   -  person Doug Stevenson    schedule 29.03.2017
comment
@DougStevenson да, я уже сделал это, но я не знаю, как найти дату их создания   -  person filol    schedule 29.03.2017
comment
Запрос не нужен, когда известен родительский узел и необходимо перебрать все дочерние узлы.   -  person Jay    schedule 29.03.2017
comment
@Jay, я знаю родительский узел и выполняю foreach в своей функции   -  person filol    schedule 29.03.2017
comment
Если вы знаете родительский узел, вы можете напрямую получить доступ к узлу, у которого есть дочерние элементы, по которым вы хотите выполнить итерацию. Запросы, как правило, требуют больше ресурсов, поэтому, если вы можете использовать событие наблюдения вместо запроса, это будет намного эффективнее. Вы можете использовать добавленное событие .child, которое будет автоматически перебирать все дочерние элементы в узле и представлять их по одному, где вы можете собирать необходимые данные от каждого дочернего элемента, такие как метка времени, как показано в моем ответе. Ознакомьтесь с документацией по прослушиванию дочерних событий.   -  person Jay    schedule 29.03.2017


Ответы (1)


Добавьте дочернюю метку времени (дату создания) к каждому узлу.

parent_node
    node_0
      timestamp: "20170328"
    node_1
      timestamp: "20170329"
    node_2
      timestamp: "20170330"

Затем выполните итерацию по всем дочерним элементам parent_node с помощью событий .childAdded или, если это меньшее количество узлов, используйте .value для загрузки всех дочерних элементов и повторите код.

person Jay    schedule 29.03.2017