問題タブ [angularfire]

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.

0 投票する
4 に答える
11076 参照

angularjs - FACTORY: Firebase Simple Login の現在の user.id を取得 (メール / パスワード)

すべてのコントローラーで「現在のユーザー ID」を利用できる確実な方法を探しています。使用: Firebase シンプルログイン: メール/パスワード認証

私の ida: 「現在のユーザー ID」を常に利用できるようにするには、コントローラーに挿入できる「ファクトリ」が必要です。

私はこのコードを思いつきました:

私の最も単純なコントローラーは次のようになります。

HTML(角度部分)には次のものがあります:

=> ID、電子メール、プロバイダーは「未定義」です。コンソールに「FACTORY: User: Login successfully:」と表示され、正しいユーザー - オブジェクトが表示されます。

=> データの問題の非同期ロード?

私も実験しました(運が悪い):

このような FACTORY は非常に便利です。私を正しい方向に向けてくれてありがとう!

編集 1.1: 今、$rootscope ハックで

=> 同じ効果 - mycontroller が速すぎる - 工場出荷時から遅い。

役立つ提案があればTAHNKS!他の人がこれをどのように解決するのか疑問に思います!

0 投票する
1 に答える
786 参照

angularjs - TypeError: undefined のメソッド 'child' を呼び出せません

angular と firebase の新機能。最初のページ読み込み時に「TypeError: メソッド 'child' を未定義で呼び出せません」というエラーが発生します。まだ準備ができていないため未定義ですが、状況をどのように処理するかはわかりません。

シナリオは次のとおりです。 1. ユーザーがログインする 2. Firebase がユーザーがログインしていることを確認する 3. ユーザーが子の「友達」の友達リストを持っている 4. Firebase がユーザーを確認する前に、コードが子の「友達」を取得しようとする

ログインするためのコード

後で、ユーザーが /friends ルートにいるときの FriendsController で

userData ref の準備ができていないため、friendsList でエラーが発生します (と思います)。他の場所から /friends に移動してもこの問題は発生せず、ページの読み込み時にのみ発生します。シナリオを処理するためのソリューションを探しています。ありがとうございました。

編集:加藤とアナントからのこれまでの提案に基づいて、私が試した追加の提案。

promise を使用する:

次に、友達のコントローラーで:

これにより、友達リストが読み込まれません。興味深いことに、メニュー ボタンをクリックすると loginPromise が実行されます。これは私が期待したものではありません。なぜこれが考えられるのでしょうか?

オブザーバー モデルを使用します。

FriendsController で:

これはページの読み込みでは機能しますが、「認証済み」のイベント ブロードキャストがなくなったため、ページに移動する場合は機能しません。したがって、これにより別の質問が発生するようです。目的のデータが読み込まれるように /friends に移動する方法は?

0 投票する
1 に答える
693 参照

angularjs - 解決で使用するための angularFireCollection の angular.js 構成への注入

最近、Angular.js を少し試しています。この一環として、リクエストされたルートに応じてトリガーする ng-view とテンプレートを備えた非常に単純なコントローラーのセットを作成しました。Firebase から配列を取得するためだけに angularFireCollection を使用しています。これは、ng-viewの一部を形成しないthumbnailControllerで正常に機能します。

私の問題は、thumbnailController に流れるデータに加えて、データにアクセスできるようにするために他の 2 つのコントローラーも必要であることです。最初は、データを $rootScope の一部にするか、ng-view を、thumbnailController が設定されている div の子として設定するだけです。

ただし、その観点からの問題は、Firebase から実際に使用可能になる前に、各サブコントローラーがおそらくテンプレートにデータを設定しようとすることです。

ソリューションは、この質問angularFire route resolutionへの回答に従って解決を使用しているようです。ただし、以下のコードを使用して (また angularFireCollection を参照して)、angularFire が不明なプロバイダーであるというエラー メッセージが表示されます。私の理解では、以下のコードで十分なはずです。また、thumbnailController で angularFireCollection を使用すると、私が言うように正常に機能することも付け加えておきます。

.$inject を使用して angularFire/aFCollection をコントローラーに直接注入する実験も行いましたが、不明なプロバイダーと見なされるという点で同様の問題が発生しました。

可能であれば、ここで問題が何であるかについて誰かがアドバイスできますか?

0 投票する
1 に答える
190 参照

javascript - AngularJS で AngularFireCollection の改ざんを検出する

基本的に、AngularFireCollection で $watch を使用しようとしています。しかし、私が望むように機能しているようには見えません。

これは私が現時点で持っているものです:

そのため、ページをロードすると、データが最初にロードされたときにコンソールに「新規」と記録されますが、それは問題ありませんが、新しいデータが入ってくると、何も記録されません。なぜこれが起こるのかについて何か考えはありますか?

0 投票する
1 に答える
1098 参照

angularjs - angularFire と認証

TodoMVC の例 ( https://github.com/firebase/angularFire/tree/gh-pages/examples/todomvc ) を考慮すると、このアプリに認証を追加する場合、ユーザーの可視性をどのように処理できますか?つまり、ユーザー 1 が todo アイテムを追加した場合、それがユーザーにのみ表示され、ユーザー 2 がログインした場合、ユーザー 1 のアイテムが表示されないようにしたいと考えています。どうすればこれを達成できますか?

これに加えて、この 2 番目の質問は前の質問と多少関連していると思います。todo とユーザー、および各 todo の可視性を保存する最良の方法は何ですか?

0 投票する
1 に答える
3578 参照

angularjs - angularFireAuthを適切に実装するには?

Firebase を使用するように公式の AngularJS ドキュメントを変更しました (電話チュートリアル)。

これは私のアプリのルーターです:

コントローラは次のようになりますが、おそらく正しくありません。ログイン機能が呼び出されますが、次に何をすべきかわかりません。ユーザーをログイン ページから phone-detail.html ページにリダイレクトするにはどうすればよいですか?

login.html は次のようになります。

私が達成したいのはこれです:

  1. すべての電話を一覧表示する
  2. ユーザーがそれらのいずれかの詳細を取得するためにクリックした場合は、それらが認証されているかどうかを確認します
  3. はいの場合は、電話の詳細を表示します。そうでない場合は、ログイン ページにリダイレクトします。
  4. ログイン後、電話の詳細ビューにリダイレクトします。

3と4で悩んでいます。

アップデート

Anant からのコメントの後、非常に興味深いものを見つけました。angularFire.js にいくつかのデバッグ メッセージを追加し、当面の間、上記のコントローラーで authRequired を true から false に変更しました。

/phones に移動すると、期待どおりに firebase からリストが返されます。内部にユーザー オブジェクトを返すもの_loggedIn()を追加しました (また、初期化の内部にデバッグ ステートメントを追加しました: https://github.com/firebase/angularFire/blob/master/angularFire.js#L437 -- どちらも有効なユーザーであることを確認します) 、 ログイン済み。console.log(user)

次に項目をクリックすると、ユーザー名と実際のページが読み込まれます (以下の html を参照)。そのページ (http:///phones/#/0) を更新すると、正しいページが再び表示され、コンソールにはまだ有効なユーザー オブジェクトが表示され、ユーザーがまだログインしていることを示しています。

phone-list.html と phone-details.html の HTML は次のとおりです。

JSON からのスニペット (現在は Firebase の一部です):

次に authRequired を true に戻すと、ユーザー オブジェクトが使用可能な場合、ページ読み込みの無限ループが発生します。最初は /login で、次に自動的に /phone/0 にリダイレクトされ、すぐに /login に再び戻ります。これは、ブラウザがクラッシュするまで発生します。

更新 2

さらにいくつかのデバッグ行を追加し、コードをいじった後、私はこの解決策を思いつきました:

初期化を LoginCtrl に追加します。

angularFire.js で、406 行目と 407 行目をコメントアウトしました。

438行目のあたりにコードを追加しました。基本的にthis._authenticated = true、and this._redirectTo = $route.current.pathTo- とthis._authenticated = falseelseステートメントを追加しました。

これが機能しない唯一のシナリオは、ユーザーがログインしてナビゲートするhttp://<host>/#/login場合$route.current.pathToです/login。このアナントについて何か考えはありますか?

0 投票する
1 に答える
348 参照

angularjs - AngularFire Priority の変更が機能せず、代わりに重複したアイテムが挿入される

優先度のあるリストに angularFireCollection があります。非常に奇妙な行動が見られます。基本的に、優先度が変更された場合、アイテム #2 が #1 になるとしましょう。アイテムを移動する代わりに、#1 を #2 として上書きするだけで、元の #1 が単純に消えるアイテムの複製ができます。

これを修正するにはどうすればよいですか?

これは、リストの表示を制御するコード行です。関連する他に何を共有すべきかわかりません。

0 投票する
1 に答える
483 参照

angularjs - firebase logout メソッドにはコールバックがありませんか?

私はこのドキュメントを見ています: https://www.firebase.com/docs/security/simple-login-overview.htmlに基づいており、ログアウトがコールバックを受け入れないようには見えません。1つ渡そうとしたところ、0個の引数を受け入れるという応答がありました。ログアウトが成功したことを確認する方法はありますか?