0

私はFirebase 3.0 REST APIを使用していますが、現在は認証手段としてGoogleログインのみを使用しています。クライアントからgoogle oauth2.0トークンからfirebase認証トークンを取得する方法はありませんか?

FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser(); 
     mUser.getToken(true) 
       .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() { 
        public void onComplete(@NonNull Task<GetTokenResult> task) { 
         if (task.isSuccessful()) { 
          idToken = task.getResult().getToken(); 
         } 
        } 
      }); 

は、アクセストークンとして使用することができ、クライアント自体からIDトークンを生成する方法はあります:Androidデバイスからのログイン後、私はコードスニペットの下から取得したが、許可が応答を拒否されますidTokenで休息APIを呼び出してみましたREST API呼び出しを認証するには?

+0

認証するREST API呼び出しは何ですか?これらのRTデータベースへの呼び出しはありますか? –

答えて

1

Firebaseを作成する認証トークンはFirebaseの秘密にアクセスする必要があるため、本質的にサーバー側のタスクです。

Firebase認証では、OAuthトークンをFirebaseトークンに変換するREST APIは公開されていません。

+0

サーバーが必要であることを明確にしてくれてありがとう@Frank。 google oauth2.0 tokenのmintingトークンに関するドキュメントを参照できますか? –

+2

ここで何をしようとしているのか分かりません。 Google OAuth IDまたはアクセストークンをお持ちの場合は、firebase auth signInWithCredential APIを呼び出すか、同等のものがiOS用であれば、firebase idトークンに交換することができます。これは現在のfirebaseで解決されます。ただし、Firebase IDトークンを使用している場合は、これを使用してGoogle OAuthアクセストークンを取得することはできません。いずれの場合も、トークンを作成するためにGoogleサーバーとの通信が必要です。 – bojeil

1

何をやろうとしていることを認証する場合、ユーザーの資格情報とリアルタイムデータベースにアクセスするには、次の手順に従ってくださいする必要があります。

  1. (ユーザーに署名したからFirebase認証IDトークンを取得上のコードを正確に参照してください)。

    FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser(); 
    mUser.getToken(true) 
        .addOnCompleteListener(new OnCompleteListener<GetTokenResult>() { 
         public void onComplete(@NonNull Task<GetTokenResult> task) { 
          if (task.isSuccessful()) { 
           idToken = task.getResult().getToken(); 
          } 
         } 
        }); 
    
  2. は、URLパラメータ「AUTH」のパラメータとして渡された、このようなトークンを使用してDBのRESTエンドポイントの1つにHTTPリクエストを作成します。それについての詳細はhereをご覧ください。目を光らせて維持

いくつかの一般的なミスの価値:

  1. トークンの有効期限が切れている(彼らの最後の1時間以降のフェッチ)
  2. あなたが異なるに属しているデータベースにトークンを送信していますFirebaseプロジェクト
  3. サインインしたユーザーが、セキュリティルールで指定されている制限と一致しません。
関連する問題