Polymerfire - невозможно прочитать свойство "push" из неопределенного

У меня проблема похожая на это, за исключением того, что я использую полимерный шаблон из этого.

Я импортировал все ссылки на Polymerfire как на странице, где <firebase-app> объявлен и на странице, где <firebase-query> используется. Не работает.

Позже я обнаружил, что в шаблоне используется polymirefire, версия которого v0.9.4, а не последняя v0.10.3. Я попытался удалить и переустановить новую версию. Ничего не изменилось.

Для дополнительной информации вот фрагмент кода:

SRC / приложение-авторизация / приложение-Auth-firebase.html

<link rel="import" href="../../bower_components/polymerfire/polymerfire.html">
<link rel="import" href="../../bower_components/polymerfire/firebase-app.html">
<link rel="import" href="../../bower_components/polymerfire/firebase-auth.html">
<link rel="import" href="../../bower_components/polymerfire/firebase-query.html">
...
<firebase-app name="pwa-demo" api-key="abc" auth-domain="abc" database-url="abc"></firebase-app>

<firebase-auth id="auth" app-name="pwa-demo" signed-in="{{_signedIn}}" user="{{_user}}"on-error="_onAuthError"></firebase-auth>

ЦСИ / приложение-страницы / приложение-страницы новый материал / приложение-страницы новый stuff.html

<link rel="import" href="../../../bower_components/polymerfire/firebase-auth.html">
<link rel="import" href="../../../bower_components/polymerfire/firebase-query.html">
<link rel="import" href="../../../bower_components/polymerfire/polymerfire.html">
...
<firebase-auth user="{{user}}"></firebase-auth>

<firebase-query id="stuffquery" app-name="pwa-demo" path="/users/[[user.uid]]/events" data="{{events}}"> </firebase-query>
...
_onFormSubmit: function() {   
    this.$.stuffquery.ref.push({
        title: this.$.piTitle.value
    });
}

Есть что-то еще, что я пропускаю? Пожалуйста помоги.

РЕДАКТИРОВАТЬ: Я нашел две другие странные вещи, которые могут быть полезны. Во-первых, я не мог ни получать данные, ни отправлять их из моего приложения в приложение. Во-вторых, когда я пытаюсь бежать firebase.database() в консоли браузера я получил "Firebase: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp() (app/no-app)."

Кто-нибудь?

1 ответ

Решение

После нескольких дней разочарования это работает. По-видимому.

TL; DR

То, что я сделал, - это обновление polymfire и исключение name атрибут из любого элемента Firebase.

объяснение

Глядя на это, кажется, Firebase инициализирует приложение в __computeApp Метод и имя - необязательная переменная, но она будет использоваться при инициализации, если она предоставлена. Проигнорируйте это, и все должно быть хорошо. В моем случае это работает как для <firebase-app>, <firebase-auth>, а также <firebase-query> (для отправки данных, потому что я все еще использую Firebase-запрос для получения данных)

Хотя это работает в моем случае, это не обязательно правильное решение. Это может не сработать в вашем случае. Мне понадобилось несколько дней, чтобы понять это, поэтому для тех, кто сталкивается с подобными проблемами, может помочь одна из них:

  1. Проверьте Firebase атрибут запроса. Обратитесь к этому
  2. Попробуйте импортировать PolymerFire / PolymerFire.html в тот же HTML-файл, где <firebase-app> объявлен Обратитесь к этому
  3. Обновление PolymFire. Просто удалите и переустановите это может решить проблему (для тех, у кого устаревшая версия PolymerFire)
  4. не указывать name атрибут из любого элемента Firebase. Я знаю мой <firebase-app> успешно инициализируется при вводе firebase.database() в консоли браузера это больше не выдает ошибку.

Надеюсь, поможет.

Другие вопросы по тегам