Ошибка: Status {statusCode = DEVELOPER_ERROR, resolution=null}
Я использую вход gplus, и получаю эту ошибку в то время, когда я нахожусь в onActivityResult....
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
client.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
// Log.d("Result","details"+ acct.getDisplayName() + acct.getEmail());
mEmail = acct.getEmail();
String mFullName = acct.getDisplayName();
String mGoogleplusId = acct.getId();
SocialUser user = new SocialUser();
user.setType("googleplus");
user.setEmail(mEmail);
user.setFullname(mFullName);
user.setId(mGoogleplusId + "");
loginParams.put("email_id", mEmail);
loginParams.put("googlePlusId", mGoogleplusId);
loginParams.put("full_name", mFullName);
loginParams.put("registrationType", "googleplus");
SignUpService(user);
} else {
Toast.makeText(CustomerLogIn.this, "Unable to fetch data, Proceed manually", Toast.LENGTH_SHORT).show();
}
}
}
И я призываю gplus войти на кнопку. На кнопке clcking выполняется следующий код....
GoogleSignInOptions googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(CustomerLogIn.this)
.addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, 0);
И я получаю эту ошибку...
Status{statusCode=DEVELOPER_ERROR, resolution=null}
на этой строке....
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
Пожалуйста, предложите решение.
Ответы
Ответ 1
Вам необходимо добавить ключ SHA1 в конфигурацию консоли Firebase. Вы можете сделать это следующим образом:
Консоль Firebase (https://console.firebase.google.com) → ваш проект → конфигурация → выделите
![enter image description here]()
Вы можете найти свой ключ SHA1, запускающий "Отчет о входе" из Android Studio:
![enter image description here]()
Затем посмотрите "Запустить вкладку" и нажмите кнопку:
![enter image description here]()
Я думаю, что это проще. Надеюсь, это поможет.
Ответ 2
Возможно, вы создали файл конфигурации, используя SHA1 вашего производства маркера, используйте androiddebugkey
псевдоним, чтобы собрать SHA1, соответствующий отладочной версии вашего приложения и скопируйте файл конфигурации в каталог "приложение", вы должны иметь оба файла конфигурации (один для целей отладки и другое для продакшен среды).
На основе пошагового руководства, опубликованного в https://developers.google.com/identity/sign-in/android/start.
Ответ 3
У меня была та же проблема, и я получил ее, выполнив следующие действия:
1.Добавьте отпечаток DEBUG_KEYSTORE SHA1 в проект Firebase. используйте следующую команду (MAC/LINUX)
keytool -exportcert -list -v \-alias androiddebugkey -keystore ~/.android/debug.keystore
2. Теперь создайте подписанный apk вашего проекта. Процесс включает в себя создание хранилища ключей для версии вашего приложения.
Copy the path of the newly generated .jks file.
3. Теперь сгенерируйте отпечаток RELEASE_KEYSTORE SHA1, используя следующую команду
keytool -list -v -keystore FULL_PATH_TOJKS_FILE -alias ALIAS_NAME
4. Скопируйте новый SHA1 из выходных данных и добавьте его в качестве другого отпечатка SHA1 в консоль приложения Firebase.
Теперь вы готовы идти! ---- Надеюсь! это помогает.
Ответ 4
![enter image description here]()
Я исправил это, подняв ключ, соответствующий выделенному тексту. Из-за запутанного использования слова "сервер" на странице документации Firebase я брал Server key
от Server key
. Который был причиной проблемы.
Вы можете найти ключ здесь.
Ответ 5
У меня была та же проблема, я решил, что в файле Gradle у меня был другой идентификатор приложения, чем имя пакета в файле манифеста. И я использовал applicationId для создания файла JSON. Мне пришлось изменить имя пакета на то, каким был мой applicationId, и это помогло мне.
Ответ 6
Пожалуйста, поместите правильный файл JSON в корень проекта Android
Для получения дополнительной информации обратитесь сюда: http://coderzpassion.com/android-working-latest-google-plus-login-api/
Ответ 7
В качестве альтернативы ответам, представленным здесь, вы можете использовать Android Studio Firebase Assistant для автоматического добавления вашего SHA-1 в ваш проект нажатием некоторых кнопок.
В Android Studio Tools > Firebase > Select 'Authentication'
и нажмите ссылку Tools > Firebase > Select 'Authentication'
'Email and password authentication'
.
Это принесет вам небольшой урок о том, как интегрировать аутентификацию в ваш проект, но, поскольку вы, вероятно, сделали все это, просто нажмите 'Connect to Firebase'
и все готово.
Ответ 8
Это старый вопрос, но в последнее время я застрял с ошибкой 10 (DEVELOPER_ERROR), потому что я использовал идентификатор клиента Android, который я создал в консоли разработчика Google.
Решением для меня было использование учетных данных Android в консоли разработчика Google только для указания ключа SHA моего apk и использования идентификатора клиента для веб-приложения (!) Учетных данных из консоли разработчика Google в моем приложении Cordova.
config.xml:
<plugin name="cordova-plugin-googleplus" spec="^5.3.0">
<variable name="REVERSED_CLIENT_ID" value="com.googleusercontent.apps.[web-application-client-id]" />
<variable name="WEB_APPLICATION_CLIENT_ID" value="[web-application-client-id].apps.googleusercontent.com" />
</plugin>
код:
window.plugins.googleplus.login(
{
'webClientId': '[web-application-client-id].apps.googleusercontent.com'
},
...
Я не использую firebase.
Ответ 9
Возможно, вы сгенерировали и добавили неверный ключ SHA1. Для генерации ключа SHA1 в Android-студии выполните следующие шаги:
- Нажмите на Gradle (на правой боковой панели вы увидите Gradle Bar)
- Нажмите "Обновить" (нажмите "Обновить из панели Gradle", вы увидите список сценариев Gradle вашего проекта)
- Нажмите на свой проект (список имен вашего проекта (корень))
- Нажмите на задачи
- Нажмите на Android
- Двойной щелчок на SigningReport (вы получите SHA1 и MD5 на панели запуска (иногда это будет в консоли Gradle))
Теперь добавьте этот ключ SHA1 в ваш проект Firebase Android.
Ответ 10
Для меня это работало, когда я впервые реализовал это, но прекратилось после нескольких дней разработки с упомянутым сообщением об ошибке.
Я решил проблему с этими шагами:
- Я добавил отпечаток sha-256 поверх отпечатка sha-1, который у меня уже был в консоли Firebase. (Не уверен, требуется ли этот шаг)
- Я снова скачал файл google-services.json и заменил старый файл.
- переустановил приложение
и это сработало
Ответ 11
Я столкнулся с этой ошибкой в моем приложении Firebase. Это было исправлено, когда я добавил ниже requestIdToken(activity.getString(R.string.default_web_client_id))
.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail().requestIdToken(activity.getString(R.string.default_web_client_id))
.build();
apiClient = new GoogleApiClient.Builder(activity)
.addConnectionCallbacks(this)
.enableAutoManage(activity, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(apiClient);
activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);
Ответ 12
Я получил эту ошибку, когда я обновил свой конфигурационный файл json новой учетной записью Google.
Удаление приложения вручную и переустановка приложения работали для меня.
Ответ 13
Ошибка вызвана тем, что контрольная сумма SHA-1 ключа отладки или выпуска не включена в консоль firebase/google.
Сначала сгенерируйте ключ, используя следующую команду:
keytool -list -v -keystore KEYSTORE_PATH -alias ALIAS_NAME
Затем скопируйте контрольную сумму SHA-1 и перейдите к:
Firebase Console> Ваш проект> Настройки приложения> Добавить fingerprint
Ответ 14
Для тех, кто выпускает приложение, вам нужен специальный fingerprint из файла хранилища ключей. Не удивительно, почему я получил эту ошибку только для продакшен версии. Как получить сертификат подписи сертификата (SHA1) для OAuth 2.0 на Android?
Ответ 15
Убедитесь, что вы включили вход в Google в разделе "Аутентификация на консоли Firebase".
Ответ 16
У меня была такая же проблема, но я решил ее, сменив пароль на идентификатор, я оставляю ссылку. fooobar.com/questions/16402734/...
Ответ 17
Я решил свою проблему, используя права server_client_id в этой строке:
String serverClientId = getString(R.string.server_client_id);
Я использовал неправильный код.