問題タブ [polymerfire]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - PolymerfireのGoogle認証が機能しない
私は Polymer と Firebase を初めて使用します (そしてプログラマーとしても)。Google で簡単なログインを行い、ユーザーがログインしていることを表示しようとしています。Google Authは Firebase で有効になっています。ログインしているユーザーがいない場合、ログアウト ボタンは非表示にする必要がありますが、ログイン ボタンをクリックしても何も起こりません。ブラウザのコンソールに警告はありません。私が使用しているコードは次のとおりです。
firebase - エラーイベントをコールバックするためにPolymerfire(firebase-document)を取得しますか?
firebase-document
リクエストが失敗した後にエラー イベントをコールバックするにはどうすればよいですか? (または、少なくとも要求が完了したという通知があれば、応答を強制的にチェックして、期待されるデータを受信したかどうかを確認できますか?)
たとえば、パスにドット ( .
)などの不正な文字を入力すると、
そして、次のエラーメッセージが表示されます。
キャッチされないエラー: Firebase.child が失敗しました: 最初の引数は無効なパスでした: "email-address/user@example.com"。パスは空でない文字列である必要があり、"."、"#"、"$"、"["、または "]" を含めることはできません。
error
イベント(または何か)が自動的に発生するようです。しかし、ドキュメントには何も言及されていません。
例外コールバックまたは少なくとも応答が完了した通知を取得するにはどうすればよいですか?
firebase - PolymerFire で onDisconnect メソッドを使用するにはどうすればよいですか?
Firebase Javascript ライブラリを使用すると、onDisconnect() メソッドを使用して、クライアントが切断されたときにデータベースの更新をスケジュールできます。
Google は、PolymerFire と呼ばれる一連の Polymer 要素をリリースしました。これにより、Polymer アプリと Firebase の接続が非常に簡単になります。
PolymerFire を使用して Polymer アプリ内から onDisconnect メソッドを使用する方法を理解した人はいますか?
object - Firebase Push ID と Polymer dom-repeat - サブプロパティへの双方向データ バインディングを維持する方法は?
次のセットアップで Firebase と Polymer を使用しています。
Firebase データ
ご覧のとおり、user-id とリスト card-sets の下に複数のユーザーがいます。firebase push id
これは基本的に配列ですが、共同作業になる可能性があるため
、使用したいオブジェクトとして保存されます。
ポリマーコード
Polymer では、dom-repeat を使用して項目を繰り返し処理しています (静止配列を使用している限り、これはうまく機能しました。
問題
知られているようにdom-repeat
、配列が必要ですが、プッシュ ID を使用しているため、Firebase はオブジェクトを提供します。配列を使用して、オプションではなく Firebase に保存します (例: [0: abc, 1: def])。また、双方向のデータバインディングを維持する必要があります
試した解決策
前述のように、(1) と (2) はオプションではありません。(3) は実際には機能していますが、このソリューションを使用すると、サブプロパティを 1 つだけ更新すると、オブジェクト内のすべてのサブプロパティが更新されます。これにより、dom-repeat に要素の再初期化が強制されます。要素を使用している<paper-input>
ため、1 つのキーを押すとフォーカスが失われます。
(4) また、(1) または (2) を使用してからサブプロパティに手動でバインドすることはできません。これは、動的インデックス (例: {{dataCardSet.card-items.index}}) を使用したバインディングを使用する方法がないためです。
(5) また、データ バインディングを動的に作成できないという同じ問題があるarray-selector
内で使用しようとしました。dom-repeat
サポートが必要
dom-repeat を維持し、push-ID を使用して、双方向のデータバインディングを維持する方法が必要です。Firebase は宣伝されていますが、Polymer フレームワークを標準として使用していないため、実際には驚き、失望しています。
また、 GitHubのコードを使用した Rob Dodson によるこのPolycastは、これが簡単に機能するという印象を与えますが、コードを見ると、ビデオに示されているように配列とプッシュ ID が使用されています。
ご協力いただきありがとうございます!
firebase - Polymer と Polymerfire: オブザーバーからのデータをループする方法は?
私は単純な<firebase-query>
タグを持っています<dom-repeat>
.. たとえば、いくつかのフィールドをリンクに変換し、いくつかの日付も解析する必要があります。
そのため、準備ができたらデータを取得し、各項目をループして、値の一部を変更する必要があります。
そのために、データの準備ができたときにそれを検出するオブザーバーを用意しました。ただし、その JavaScript 関数からデータをループする方法がわかりません。アイテムは存在しますが、何らかの理由でfor(var i in items)
機能しません。
コンポーネントは次のとおりです。
理想的には、オブザーバー関数でやりたいことは次のようなものです。
しかし、データをループできないようです。
オブザーバー関数内では、次のconsole.log(data)
ような奇妙なものを返します。
アップデート:
これは、console.log(data) が返す内容のスクリーンショットです (オブザーバー内から):
配列にはすべてのオブジェクトが取り込まれているように見えますが、Array[0] として表示されます。したがって、それらをループすることはできません。
更新 2:
alfost のおかげで、解決策は次のとおりです。
firebase - ポリマー + Firebase (Polymerfire):単一ページのアプリ ビュー内で動作しない (とmy-app.html にあります)
Polymerfire と Polymer App Toolbox テンプレートを使用して、データを Firebase にプッシュしようとしています。
my-app.html
構成されたコンポーネントが含まれています<firebase-app>
。my-models.html
my-app.html
(ルートで構成されたページ)<add-model>
コンポーネントが含まれています<add-model>
<firebase-query>
、<firebase-auth>
、入力、送信ボタンのあるフォームです。<firebase-query>
オブジェクトで次の関数を使用してデータをプッシュしようとしていadd-model.html
Polymer
ます:結果
リターン
push
での<firebase-query>
オブジェクトの呼び出し(この Q/Aで説明されています。私たちの場合は、適切に宣言されていないように見えるためです)。add-model.html
Cannot read property 'push' of undefined
<firebase-app>
<firebase-app>
からファイルに移動すると関数は機能しますが、Firebase の機能がmy-app.html
失われます。add-model.html
push
my-app.html
<firebase-app>
my-app.html と add-model.html の両方を呼び出すと戻りますUncaught Error: Firebase App named 'firebase-app' already exists.
<firebase-auth>
で動作しadd-model.html
、オブジェクトを返し[[user]]
ます。
ルートからfirebase-query
適切に通信するにはどうすればよいですか?firebase-app
asynchronous - Polymer と Firebase: パスの変更動的に
私はいくつかのデータを取得するコンポーネントを持っています。内部にバインディングがあるため、パスは動的です。
次に、パスを動的に変更するリンクがいくつかあります。それに応じてデータのリストが更新されることを期待しています。
ページを最初にロードしたときは問題なく動作しますが、リンクをクリックしてパスを更新する (したがって新しいデータを取得する) と、何も返されません。
オブザーバーで何が起こっているかを確認したところ、パスを更新するたびにデータが 2 回更新されているように見えます。最初に期待する実際のデータが返され、次に空の配列が返されます。
コンポーネントは次のとおりです。
リンクの 1 つをクリックすると、コンソールに次のように表示されます。
非同期の魔術が行われているようです - これを解決する方法はありますか?