問題タブ [firebase-authentication]

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 投票する
1 に答える
263 参照

angularfire - AngularFire $onAuth() は、GitHub からの最初のリダイレクト後に起動しませんが、ページの更新時に起動します。ポップアップで正常に動作します

GitHub との間のリダイレクト認証が成功した後、AngularFire の $onAuth() を起動する際に問題が発生しています。私が使用auth.$authWithOAuthRedirect('github')すると、GitHub にリダイレクトされ、認証が成功した後に再び戻りますが、Angular アプリに戻ったときに、auth.$onAuth()コールバックが呼び出されません。次にページを更新すると、予想される認証情報で呼び出されます。サインアウト ( $unauth()) して再度サインインすると$onAuth()、ページを更新するまでコールバックが呼び出されません。

最初はこれは私のやり方が間違っていると思いましたが、コードを変更して$authWithOAuthPopup()代わりに使用すると、アプリが期待どおりに動作$onAuth()することに気付きました。ポップアップが閉じるとすぐにコールバックが呼び出され、authdata が渡されます。

これが AngularFire のバグなのか、使い方を誤解しているだけなのかを確認してください。例を検索しましたが、正しく使用していると思いますが、コードに問題がある場合は、どうすればよいか教えてください。

最小限のリポジトリ ケースを GitHub リポジトリに入れました: https://github.com/drstearns/angularfire-oath-redir。コードは現在 を使用し$authWithOAuthRedirectており、初回認証時に GitHub から戻ったとき、またはサインアウトして再度サインインした後も、コンソールに何も記録されていないことに気付くでしょう。サインイン後にページを更新すると、正常に動作します。 . use$authWithOAuthPopup()に変更しても問題なく動作します。

関連するコードのスニペットを次に示します。

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

angularjs - Firebase: angularFire を使用して認証した後にオブジェクトの $id を取得する方法

Firebase には、クライアントの認証状態の変更をリッスンする $onAuth メソッドがあります。クライアントが認証されている場合、コールバックには uid を含むオブジェクトが渡されます。これが私の質問です: この uid に基づいて、このオブジェクトの $id を取得するにはどうすればよいですか?

これは私のデータがfirebaseでどのように見えるかです:

私は使っている

authData 応答でできることは、次を使用してオブジェクトの uid を取得することだけです。

この authData には、オブジェクトの $id (つまり、-K2a7k9GXodDriEZrM3f) は含まれていません。それが、ユーザーの情報を利用できるようにするために私が探しているものです。これを達成する方法はありますか?

ありがとう。

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

firebase - ルールを使用した Firebase メール認証が期待どおりに機能しない

管理画面では、メール認証と匿名ログインの両方を有効にしています。データにはノードが 1 つだけあります - Hello: "World"

私が持っているルールは

ユーザーが上記のルールでログインしていない場合、The read failed: Permission denied That's all good. が表示されます。

匿名ユーザーがログインしている場合、値 "{Hello=World"} が表示されます。これまでのところ機能しています。

メール ユーザーでログインすると、次のエラーが表示されます :FirebaseError: Permission denied

onAuthenticate がトリガーされ、次のようになります: ユーザー ID: 3c6ce912-a05a-49ed-ae68-8ec97d022303、プロバイダー: パスワード

完全なコードは以下のとおりです。私は何を間違っていますか?

}

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

firebase - firebase でユーザーを削除しても onAuth メソッドがトリガーされない

Login & Auth Firebase Web インターフェイスの登録済みユーザーセクションからユーザーを削除すると、onAuth メソッドはトリガーされず、ユーザーはログインしたままデータベースに書き込むことができます。ユーザーのセッションが破棄され、ユーザーが削除されることを確認するにはどうすればよいですか?

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

oauth - OAuth トークンを使用して Polymer で Firebase を認証する

Google アカウントで認証する Firebase データベースがあります。現在<google-signin-aware>、Google サインイン API で使用するアプリのサインインの詳細を詳述する要素があり、サインイン時に、Google サインインによって返されたアクセス トークンを使用して Firebase 参照を認証します。

<google-signin-aware>サインイン成功時の要素のコールバックから:

Polymer との統合をさらに進める<firebase-auth>ために、「Firebase 認証 API のラッパー」である要素に移行しています。ただし、アクセストークンで認証する同等の方法が見つかりません。メソッドには 2 つのパラメーターがあります。login()アクセス トークンをログイン メソッドにフィードして、Firebase が独自のポップアップ ウィンドウではなくこのトークンで認証する方法はありますか?

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

firebase - ユーザーの作成時に Firebase セキュリティ ルールが許可されない

$authWithPasswordユーザーのログインには Firebaseメソッドを使用します。メソッドを使用$createUserしてユーザーの登録を作成し、成功したら /users/ パスのエントリを更新して、ユーザー名、uid、およびその他の詳細を保存します。ここにコードがあります

そして、これが私のセキュリティルールです

ここで登録しようとすると、セキュリティ ルール".read": "auth != null"".write": "auth != null". ルールを".read": trueおよびに変更すると".write": true、登録は機能しますが、uid や電子メール ID などのユーザー データを誰でも見ることができてしまい、望ましくありません。ニーズに合わせてルールを変更するにはどうすればよいですか?

これは、私のユーザーテーブルがどのように見えるか ここに画像の説明を入力 です。ありがとう。

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

google-app-engine - Google Cloud Endpoint からの Firebase 認証

ユーザー認証で Firebase を使用する Android アプリがあります。認証プロセスは、Facebook、Google、または Twitter アカウントを介して行われ、ユーザー データが Firebase に保存されます。

一方、App Engine で実行されている Java の Google Cloud エンドポイントがあり、Firebase に接続してデータを取得し、最終的に Google Cloud Messaging を介して他のユーザーにメッセージを送信します。Firebase はユーザーの GCM トークンを保存し、一部の GCM トークンが無効であるか更新されている場合、エンドポイントは Firebase に接続してそれらの GCM トークンをユーザー ノードに更新します。

現在、ユーザー ノードのセキュリティ ルールは次のとおりです。

現時点では、Google Cloud エンドポイントはユーザーの GCM トークンを更新することを許可されていません。エンドポイントがユーザー ノードに書き込むことを許可するためだけにカスタム トークンを生成する認証プロセスをエンドポイントに実装することを考えています。

これは行く方法ですか?または私は完全に間違っていますか?