Я использую Firebase UI в моем приложении для входа в систему.
все работает нормально, когда я запускаю его в режиме отладки - никаких ошибок вообще.
Я запускаю его через свой мобильный телефон, и он отлично работает!
Моя проблема начинается, когда я загружаю свое приложение в игровой магазин.
Когда пользователь пытается войти через Facebook, он сообщает, что ключ хеша не соответствует ни одному из сохраненных хэшей.
Я проверил несколько раз в Facebook Developers и в моей Android Studio и тот же хеш-ключ.
У меня также появляется «Ошибка разработчика» при попытке войти в систему с помощью Google.
Понятия не имею, почему ...
А также Ошибка входа в систему с помощью «Электронной почты и пароля» - пользователь вводит свою электронную почту и пароль, и ничего не происходит. Просто оставайся на той же активности.
Я не уверен, что мне делать, если я создам релиз SHA-1?
или что-то еще, что я здесь упускаю.
Вот мой логин
public void startSignIn(){
List<AuthUI.IdpConfig> providers = Arrays.asList(
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER)
.setPermissions(Arrays.asList(Scopes.PROFILE,Scopes.EMAIL)).build(),
new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build());
Intent intent = AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers).build();
startActivityForResult(intent,RC_SIGN_IN);
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == RC_SIGN_IN){
IdpResponse idpResponse = IdpResponse.fromResultIntent(data);
if(idpResponse != null && resultCode == RESULT_OK){
currentUser = FirebaseAuth.getInstance().getCurrentUser();
//check if the user is exists by userUID. if he is, it jumps to main activity
refToUsers.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot.hasChild(currentUser.getUid())){
Intent mainActivity = new Intent(getApplicationContext(), MainActivity.class);
mainActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(mainActivity);
}else{
//if the user is not exists it will move to register activity
Intent registerActivity = new Intent(getApplicationContext(), RegisterActivity.class);
registerActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(registerActivity);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
Log.d(TAG,databaseError.getMessage());
}
});
}else if (idpResponse.getErrorCode() == ErrorCodes.NO_NETWORK) {
errorToast("No internet connection");
}else if (idpResponse.getErrorCode() == ErrorCodes.UNKNOWN_ERROR) {
errorToast("Unknown Error");
}
}
Простой код, но по какой-то причине не работает ...