2016-08-03 2 views
0

Мое приложение требует службы мониторинга, которую я размещаю на Heroku, которая контролирует, исправляет и изменяет данные на основе изменений в учетной записи пользователя. Однако есть некоторые поля в учетной записи пользователей, которые обновляются с быстрой скоростью, и наличие всех этих учетных записей спама моей службы мониторинга с данными очень неэффективно.Не меняйте 'child_changed', если определенное поле изменено

Можно ли игнорировать поля при прослушивании child_changed так, чтобы обратный вызов не был запущен и данные никогда не загружались? В зависимости от скорости пользователей я мог бы скачивать сотни учетных записей несколько раз в секунду в моем приложении мониторинга, и это просто то, что будет в пламени.

Вот пример того, что я ищу:

{ 
    name: 'Jimmy', 
    birthday: 'Mar 23, 1976', 
    biography: 'Random text', 
    interests: { 
     // ... 
    } 
} 

Может быть, я хочу, чтобы игнорировать biography поле, для этого функция child_added необходимо загрузить новую информацию о счете только, если один из следующих значений изменяются:

  • имя
  • brithdate
  • интересы

и данные должны быть проигнорированы и не загружены, если поле biography было изменено, поскольку это не поле, относящееся к моему монитору, а просто отбрасывает полосу пропускания.

ответ

1

Firebase всегда синхронизирует полные узлы. Если вы хотите синхронизировать только подмножество каждого узла из списка узлов, вы должны разделить это подмножество на свой собственный узел верхнего уровня.

profiles: { 
    uidJimmy: { 
    name: 'Jimmy', 
    birthday: 'Mar 23, 1976', 
    biography: 'Random text', 
    } 
}, 
interests: { 
    uidJimmy: { 
     // ... 
    } 
} 

Вы найдете, что это общие их при использовании Firebase (или большинство других баз данных NoSQL): вы должны моделировать данные таким образом, что ваше приложение хочет потреблять. Я настоятельно рекомендую прочитать эту статью по адресу NoSQL data modeling.

+0

Это то, что мы делали, мне просто интересно, есть ли способ нормализовать данные. Благодарю. – Hobbyist

Смежные вопросы