問題タブ [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 投票する
2 に答える
6696 参照

angularjs - angularFireの暗黙的な同期を使用して、ng-repeat内のFirebaseの一意のIDにアクセスします

angularFire暗黙的なデータ同期を使用して Firebase からのオブジェクトのリストを持っています。それらの一意の ID (URL で使用するため) と、 ng-repeat. のメンバーがプロパティを持つのと同じように、angularFire内のオブジェクト ID にアクセスできるような方法で返すことはできますか? そうでない場合、これを達成する正しい方法は何ですか? 架空のコード (動作しません):ng-repeatangularFireCollection$id

コントローラ:

意見:

0 投票する
2 に答える
767 参照

angularjs - 複数の promise を使用して AngularFire でデータをフェッチする - 無限ループ

作成中のアプリに Firebase と AngularFire を使用しようとしています。私は確かにAngularとFirebaseの初心者なので、助けていただければ幸いです。

Firebase には次のデータベース構造があります。

  • エピック
    • エピック 1
      • ID
      • タイトル等
    • エピック2
      • ID
      • タイトル等
  • ユーザー

    • ユーザー 1

      -アクティブなエピソード

      • アクティブな叙事詩 1

      • アクティブな叙事詩 2

次のページでは、データベース内の各エピックの ng-repeat を示しています。各エピックにはボタンの列があり、そのうちの 1 つが問題を引き起こしています。現在のユーザーがすでにエピックを開始している場合 (たとえば、エピックがそのユーザーの「activeepics」に表示される場合)、ボタンには「Tap Out」と表示されます。エピックがユーザーのアクティブなエピックにない場合は、「開始」と表示されます。

ボタンは、ボタンのラベルに応じて、クリックされたときに異なることを行う必要があります。したがって、ボタンのラベルが「開始」と表示されている場合、アプリはエピックを現在のユーザーの「activeepics」に追加し、ボタンのラベルを「Tap Out」に変更する必要があります。対照的に、ボタン ラベルが「Tap Out」の場合、アプリは「activeepics」からエピックを削除し、ボタン ラベルを「Start」に戻す必要があります。

しかし、私はあらゆる種類の奇妙な振る舞いをしています。1 や 0 などのダミー ID を使用すると、アプリは正しいボタン ラベルを表示します。ただし、Firebase で生成された ID でエピックを追加すると、すべてのラベルが「開始」にリセットされます。また、アプリが各エピックを複数回ループしていることにも気付きました (表示される各エピックのデバッグ console.log を入力しました)。

問題は、Firebase データを $scope にバインドした後に複数の promise オブジェクトがあることだと思います。できれば助けてください!

コードは次のとおりです。

意見

コントローラ

0 投票する
0 に答える
131 参照

javascript - AngularFireSeed での AngularFireAuth UI のちらつき

AngularFireSeed でアカウント ページを更新すると、ログイン画面が点滅し、アカウント ページにリダイレクトされるという事実に苦労しています。また、ang-hide がログイン リンクを非表示にするために機能していないことにも気付きました。このリンクは、angular が認証済みであることを認識してログアウト リンクを表示する前に点滅します。

以下のリンクで提案された解決策を見つけましたが、数時間試してみましたが、うまくいきませんでした。欠落している詳細があるためだと思います:https://groups.google.com/forum/#!topic/firebase-angular/bO0AW2V9d9w

これを修正するために私ができること。angularFireをハックしたり、バニラのFirebase APIでコードを書いたりする必要がないようにしようとしていますが、そうなるかもしれません.

ありがとう。

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

firebase - ユーザーによる Firebase CRUD 操作の保護

AngularFire のドキュメントが薄く、それと Firebase のデフォルトの Web ドキュメントとの違いにより、ユーザーの作成、読み取り、更新、および削除操作を保護する最善の方法について少し迷っています。

簡単に言うと、店舗を管理するアプリケーションがあるとします。ユーザーは、ストアのオーナーまたはパトロンになることができます。所有者は自分のビューで自分のストアを読み取って編集する必要があり、パトロンは自分のビューですべてのストアを読み取り、編集する必要はありません。

次のような Firebase ドキュメントで提案されているメソッドのセキュリティが心配です

たとえば、次のようなルールを作成して、ユーザー ID をコメントと共に保存する限り、ユーザーがコメントを作成できるようにすることができます。

私にとって、これは、コメントを投稿したいときに、被害者のユーザー ID を渡すだけで、アプリケーションのデータをハッキングできることを意味します。私が間違っている?

セキュリティに関するドキュメントを何度も読みました。ここはもっと説明が必要だと思います。クライアントに公開されたパラメーターによる識別は、これまでに見つけた唯一の方法です。

0 投票する
3 に答える
13313 参照

javascript - Firebase AngularFire でアイテムのインデックス ID を取得する

同様の質問がここで尋ねられましたが、受け入れられた1つの回答は実際には質問に答えていません.

AngularFire を使用して、リレーショナル スタイルのデータベースを作成することは可能ですか? それとも UniqueID にアクセスしますか?

AngularFire を介してネストされたアイテムを Firebase に追加する場合、各アイテムは実際には、番号が付けられた別のインデックスの下に設定されます。

ここに画像の説明を入力

このため、次の相対 URL でユーザーの製品を参照する必要があります。

私の質問は、ユーザー (またはそれに関するもの) を作成したら、どうすればインデックス値を取得できますか?

アップデート

明確にするために、これはユーザー認証に関する質問ではありません。私はすでにその世話をしています。混乱させて申し訳ありません。

Firebase で他のものの「下」にあるものを作り始めたとき、レンガの壁にぶつかりました。usersでもsでも構いませんgiraffe

「お店」を作ると、各お店には「商品」があります(としましょう)。

それらを取得できるようにしたい

しかし、storeIdAngularFire から作成されたインデックス ID が理想的です (添付の図を参照してください)。問題は、AngularFire がこの ID を通知せずに作成することです。

次のような成功関数があった場合

それは最も理にかなっていますが、AngularFire がこの非常に必要な機能を準備しているようには見えません。私が間違っていることを証明してください。:)

0 投票する
2 に答える
496 参照

angularjs - AngularFire/AngularJS プロジェクトで Firebase を使用すると、1 回のキーストロークで入力を停止できます

アプリケーションのデータを同期するために、Firebase (AngularFire) の使用を開始しました。配列にカードを追加するスクラム用のカード ツールです。入力フィールドを操作できます。

最初に localStorage を使用しましたが、これは非常にうまく機能しました。基本的に Firebase を実装したので、次の問題が発生しました。1 つのフィールドに 1 つのキーを入力した後、アプリケーションが停止し、入力を再開する唯一の方法は、入力フィールドをもう一度クリックすることです。

これがなぜなのか知っていますか?事前にどうもありがとうございました!

それが私のControllerでの基本的な実装です:

それが私のマークアップです: