1

Google はドキュメントで、「ユーザーがサインアウトするときに CredentialsApi.disableAutoSignIn() を呼び出して、ユーザーがすぐにサインインし直さないようにする (...)」と述べています。

これが起こることです:

  1. ユーザーには資格情報が 1 つしか保存されていません。アプリに入ると、自動的にサインインします。
  2. ユーザーがサインアウトし、CredentialsApi.disableAutoSignIn() が呼び出されます。
  3. これで、ユーザーがアプリに入るたびに、自動的にサインインするのではなく、チューザーが表示されますが、チューザーには、保存されている唯一の資格情報に対するオプションが 1 つしかありません。

これは非常に厄介です。ユーザーがログアウトしても、毎回再度ログインする必要はありません。彼が複数の資格を持っていても。しかし、当分の間、彼が資格を 1 つしか持っていない場合に焦点を当てましょう。

これは予想される動作ですか?1 月にこの機能をテストしたときは、そうではなかったはずです。現在、この機能を本番環境に導入しています。これが期待される動作である場合は、ユーザーがいつログアウトしたかを検出するために、共有設定にフラグを保存する必要があるかもしれません。

資格情報の要求機能はアプリのメイン アクティビティにあり、そこに行くたびに、ログインを要求するダイアログ チューザーが表示されます。

4

1 に答える 1

0

残念ながら、アプリでユーザーの状態を維持する必要があります (最近、この動作に変更を加えていません。常にこのようになっています)。

アプリでサインインがオプションの場合、一部のアプリで実装されているものを次に示します。

  • これがデバイスでの最初の実行であるかどうかを追跡します (共有設定など)。そうであれば、サインインを自動的にトリガーしてピッカーを表示し、自動サインインが無効になっている場合、またはユーザーが 1 回のタップでサインインできるようにします。彼らは複数のアカウントを持っています

  • その後のアプリの起動時に、自動サインインを試行することはできますが (たとえば、ユーザーが Web または別のデバイスでサインアップしてからアプリを開いた後)、最初の実行でない場合は結果を解決しません (つまり、表示されません)。ピッカー、解決のためにインテントを破棄するか、後で保留します)

  • ユーザーが明示的にサインイン アクションをトリガーした場合 (つまり、サインイン ボタンをクリックした場合)、インテントを使用するか、API を再度呼び出して、アカウントに再度サインインしたり、アカウントを切り替えたりすることができます。

申し訳ありませんが、これにはあなたの側で少し状態が必要です。サインイン無効状態を設定しCredentialsApi.disableAutoSignIn()ますが、アプリに対するユーザーのサインイン状態は追跡しません (これはアプリケーション開発者のロジックに依存し、アプリで管理する必要があります)。

お役に立てば幸いです。お気軽にコメントを残してください。これについてドキュメントにガイダンスを追加できるかどうかを確認します!

于 2016-05-22T06:16:39.487 に答える