我在我的应用中使用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中添加什么吗?我希望它是永久的,因为该应用程序每天都会运行。