-2

Firebase認証を使用してGoogle Signinを実装しています。サンプルのコードを使用しました。私のアプリはデバッグ中に完全に正常に動作しています。これは、実際のAndroidデバイスをUSBケーブルを使ってPCに接続したときですが、署名したAPKを共有しているときにはインストールされていません。AndroidでFirebase Google Signinを実装する方法は?

許可

<uses-permission android:name="android.permission.INTERNET"/> 
<!-- USE_CREDENTIALS is necessary for Google+ login --> 
<uses-permission android:name="android.permission.USE_CREDENTIALS" /> 
<!-- GET_ACCOUNTS is necessary to display email address of logged in user. This permission is optional --> 
<uses-permission android:name="android.permission.GET_ACCOUNTS" /> 

しかし、私のアプリをインストールする際には、このアプリは、特別な許可を必要としないと言っています。

主な活動

GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) 
      .requestIdToken(getString(R.string.default_web_client_id)) 
      .requestEmail() 
      .build(); 
    // [END config_signin] 

    mGoogleApiClient = new GoogleApiClient.Builder(this) 
      .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) 
      .addApi(Auth.GOOGLE_SIGN_IN_API, gso) 
      .build(); 

    // [START initialize_auth] 
    mAuth = FirebaseAuth.getInstance(); 
    // [END initialize_auth] 

    // [START auth_state_listener] 
    mAuthListener = new FirebaseAuth.AuthStateListener() { 
     @Override 
     public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { 
      FirebaseUser user = firebaseAuth.getCurrentUser(); 
      if (user != null) { 
       // User is signed in 
       Log.d(TAG, "onAuthStateChanged:signed_in:" + user.getUid()); 
      } else { 
       // User is signed out 
       Log.d(TAG, "onAuthStateChanged:signed_out"); 
      } 
      // [START_EXCLUDE] 
      updateUI(user); 
      // [END_EXCLUDE] 
     } 
    }; 

public void onActivityResult(int requestCode, int resultCode, Intent data) { 
    super.onActivityResult(requestCode, resultCode, data); 

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...); 
    if (requestCode == RC_SIGN_IN) { 
     GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
     if (result.isSuccess()) { 
      // Google Sign In was successful, authenticate with Firebase 
      GoogleSignInAccount account = result.getSignInAccount(); 
      firebaseAuthWithGoogle(account); 
     } else { 
      // Google Sign In failed, update UI appropriately 
      // [START_EXCLUDE] 
      updateUI(null); 
      // [END_EXCLUDE] 
     } 
    } 
} 

private void firebaseAuthWithGoogle(GoogleSignInAccount acct) { 
    Log.d(TAG, "firebaseAuthWithGoogle:" + acct.getId()); 
    // [START_EXCLUDE silent] 
    showProgressDialog(); 
    // [END_EXCLUDE] 

    AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null); 
    mAuth.signInWithCredential(credential) 
      .addOnCompleteListener(this, new OnCompleteListener<AuthResult>() { 
       @Override 
       public void onComplete(@NonNull Task<AuthResult> task) { 
        Log.d(TAG, "signInWithCredential:onComplete:" + task.isSuccessful()); 

        // If sign in fails, display a message to the user. If sign in succeeds 
        // the auth state listener will be notified and logic to handle the 
        // signed in user can be handled in the listener. 
        if (!task.isSuccessful()) { 
         Log.w(TAG, "signInWithCredential", task.getException()); 
         Toast.makeText(getApplicationContext(), "Authentication failed.", 
           Toast.LENGTH_SHORT).show(); 
        } 
        // [START_EXCLUDE] 
        hideProgressDialog(); 
        // [END_EXCLUDE] 
       } 
      }); 
} 

private void signIn() { 
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient); 
    startActivityForResult(signInIntent, RC_SIGN_IN); 
} 
+0

署名付きapkをインストールしようとしているのと同じデバイスにデバッグがインストールされていないことを確認できますか? –

+0

@ChintanSoniはいAPKを生成した後私はアプリをアンインストールしました。自分自身をAPKに郵送しました。 –

答えて

0

手のセットで維持されるすべてのユーザーから、以前にアンインストールします。スマートフォンに複数のユーザーアカウントがある場合、アプリアイコンをドラッグアンドドロップしてアンインストールしても、すべてのユーザーからアプリがアンインストールされるわけではありません。あなたは、アプリリストでアプリがまだ存在見つけるメニューで、その上

  • クリックをクリックしてアプリケーションのセクション
  • に移動
  • 設定にアプリ

    1. ゴーをアンインストールする

      すべてのユーザーに対してアンインストールするオプションがあります。クリックしてお楽しみください。

  • +0

    @Aniket no yaar。それはインストールされておらず、私は新しいapkをインストールすることができないことを意味するアプリのセクションに表示されていません。私はこれが問題ではないと思う –

    2

    APKに署名するときは、v1とv2の両方の署名バージョンにチェックを入れてください。

    +0

    おかげでそれは解決したその問題 –

    +0

    それは私の答えを受け入れるupvoteしてくれた場合、こんにちは仲間。 –

    2

    署名付きapkを作成するときに、v1とv2の両方の署名バージョンを選択する必要があります。 これがうまくいかない場合は、parsing error in signed apk

    関連する問題