我该如何更正我的登录方法?

时间:2018-06-20 12:42:30

标签: java android firebase firebase-authentication google-signin

我在我的应用中使用Google登录方法。它有效,但有时不起作用。当我在调试中构建应用程序或对其进行签名时,它就可以运行,并且用户可以在其上注册。

但是,似乎在阻止新注册甚至登录的时间上设置了一段时间。例如,我构建了apk并将其安装在设备中,可以成功注册,但是当我再次卸载并重新安装并尝试登录时,该应用程序无法登录。

它实际上显示了我的电子邮件地址,但是当我选择它时,它什么也没做。甚至没有进度对话框。我什至无法访问我的帐户。

我多次尝试将 sh1 证书放入Firebase。但是当它不能解决我的问题时。可能是什么问题呢。我在.xml和java.class中有一个表示sigin的按钮,我有以下代码:

public class register extends BasicActivity {


  final int REGISTER_CODE = 200;
    GoogleApiClient mGoogleApiClient;
    GoogleSignInAccount account;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);
        GoogleSignInOptions signInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                .requestIdToken(getString(R.string.default_web_client_id))
                .requestEmail().build();
        mGoogleApiClient = new GoogleApiClient.Builder(this).addApi(Auth.GOOGLE_SIGN_IN_API, signInOptions).build();
        checkLogged();
    }
    @Override
    public boolean setActionText() {
        return false;
    }
    private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
        if (acct != null) {
            AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
            mAuth.signInWithCredential(credential).addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {
                    if (task.isSuccessful()) {
                        checkLogged();
                    }
                }
            });
        }
    }
    @Override
    protected void onStart() {
        super.onStart();
        mGoogleApiClient.connect();
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == REGISTER_CODE) {
            GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
            if (result.isSuccess()) {
                account = result.getSignInAccount();
                firebaseAuthWithGoogle(account);
            } else {
                Log.e("hash", result.getStatus().toString());
            }
        }
    }
    void checkLogged() {
        showDialog();
        new libs(this).getId(new libs.LoadListener() {
            @Override
            public void onLoad(Float response) {
                dismissDialog();
                if (response == null) {
                    return;
                }
                startActivity(new Intent(register.this, select.class));
                finish();
            }
        });
    }
    void AddGoogleAccount(int type) {
        Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
        startActivityForResult(signInIntent, type);
    }
    public void registerBtn(View view) {
        AddGoogleAccount(REGISTER_CODE);
    }
    @Override
    public void onBackPressed() {
        moveTaskToBack(true);
        android.os.Process.killProcess(android.os.Process.myPid());
        System.exit(1);
    }
}

我需要在Firebase中添加什么吗?我希望它是永久的,因为该应用程序每天都会运行。

0 个答案:

没有答案