【发布时间】:2019-11-28 10:31:57
【问题描述】:
当我尝试通过 FirebaseUI 使用 google 帐户登录时,我总是收到 12500 错误。此外,如果我尝试通过另一个不是我的 Google 帐户登录,它会要求我输入密码。我试图写我的密码帐户,但它不接受。
我真的尝试了我在网络中找到的所有解决方案。我尝试替换和编辑我的 google-json 文件,更改和编辑我的 SHA-1 代码并创建另一个 OAuth 客户端 ID,但没有任何帮助。
public class Login2 extends AppCompatActivity {
List<AuthUI.IdpConfig> providers;
private static final int MY_REQUEST_CODE=1111;
private static final int RC_SIGN_IN=1;
private String TAG="Activity";
FirebaseAuth firebaseAuth;
Button signOut;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login2);
firebaseAuth= FirebaseAuth.getInstance();
try {
PackageInfo info = getPackageManager().getPackageInfo(
"com.example.allergyalert",
PackageManager.GET_SIGNATURES);
for (Signature signature : ((PackageInfo) info).signatures) {
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(signature.toByteArray());
Log.d("KeyHash:", Base64.encodeToString(md.digest(), Base64.DEFAULT));
}
} catch (PackageManager.NameNotFoundException e) {
} catch (NoSuchAlgorithmException e) {
}
signOut=findViewById(R.id.signOutTestBtn);
signOut.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AuthUI.getInstance().signOut(Login2.this).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
signOut.setEnabled(false);
showSignInOptions();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(Login2.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
}
});
}
});
providers= Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.FacebookBuilder().build()
);
}
public void showSignInOptions() {
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
MY_REQUEST_CODE);
}
public void userLoggedIn(){
if(firebaseAuth.getCurrentUser() == null){
showSignInOptions();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode==MY_REQUEST_CODE)
{
IdpResponse response= IdpResponse.fromResultIntent(data);
if(resultCode==RESULT_OK)
{
FirebaseUser user= FirebaseAuth.getInstance().getCurrentUser();
Toast.makeText(this, ""+user.getEmail(), Toast.LENGTH_SHORT).show();
signOut.setEnabled(true);
}
else
{
Toast.makeText(this, ""+response.getError().getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
}
【问题讨论】:
-
如果您已经尝试了副本中列出的所有方法,但仍然无法正常工作,请联系 Firebase 支持,以便他们收集有关您的项目的信息。
标签: java android firebase-authentication google-authentication