Запись в Firebase из элемента Polymer

Я работаю над заданием для курса «Кодирование гуманитарных наук», которое включает в себя написание пользовательского веб-компонента. Это означает, что я обязан использовать Polymer, хотя, насколько я понимаю, в этом нет абсолютно никакой дополнительной ценности.

Я хочу создать буквальную «комнату» чата, в которой пользователи вводят символ, чтобы идентифицировать себя, и могут ходить по комнате, натыкаясь друг на друга по образцу robotfindskitten.

Моя идея заключалась в том, чтобы записать каждый символ и его позицию в местоположение Firebase, обновляя все позиции в режиме реального времени, поэтому мне нужен клиент Firebase JS — использование core-ajax для запросов REST недостаточно быстро.

GitHub readme для элемента core-firebase состоит из ссылки на менее полезная страница компонента.

Глядя на сам элемент core-firebase, я не вижу ничего, что соответствовало бы событию 'value'; locationChanged имеет обработчик события "добавлен дочерний элемент", но это все.

Я сошел с ума, думая, что элемент core-firebase просто очень неполный? Должен ли я попытаться написать свой собственный обработчик «значения»? Если это так, мне просто добавить его в свойство locationChanged объекта, переданного в Polymer()? Я очень запутался — я достаточно знаю JS, поэтому то, что происходит в коде core-firebase, выходит за пределы моего понимания. (Что может быть связано с ключевым словом this, я не знаю.) Любой вклад здесь будет оценен. (И да, я уже сказал инструктору, что мог бы справиться с этим, используя старые добрые jQuery и Firebase, если бы мне не пришлось использовать Polymer. Об этом пока ничего не сказано.)


person CFK    schedule 24.05.2014    source источник


Ответы (1)


Глядя на коммиты для core-firebase, похоже, что у него было около двух дней работы. на нем плюс некоторое техническое обслуживание, поэтому неудивительно, если отсутствуют какие-либо функции.

Одна приятная особенность Polymer заключается в том, что он очень хорошо взаимодействует с другими способами написания приложений. Совершенно разумно и поддерживается использование jQuery и Firebase напрямую для чтения из firebase и реагирования на изменения. Вы по-прежнему можете эффективно использовать шаблоны и привязку данных Polymer, делая это в своем собственном элементе и используя привязку данных Polymer, шаблоны и простые старые события DOM для распространения этих изменений по всему вашему приложению и отображения их на странице.

person Peter Burns    schedule 25.05.2014
comment
Одна вещь, которую я заметил, это то, что jQuery и Polymer, кажется, не слишком хорошо работают вместе — я знаю, что jQuery не может коснуться теневой DOM, но также, похоже, возникает конфликт с некоторыми методами, которые я пытаюсь вызвать — Я помню, как пытался что-то concat() и получал ошибки с platform.js. - person CFK; 25.05.2014
comment
Обязательно включите platform.js перед jquery. jQuery не знает о теневом доме на самом деле, что вызовет несколько проблем, но все же может работать. например $($('мой-элемент')[0].shadowRoot).find('.something-in-shadow-dom'). Однако по моему опыту, как только я начал использовать полимер, мне не нужно было много jQuery для манипулирования домом. - person Peter Burns; 25.05.2014