Я знаю, что многие из них задали этот вопрос и получили ответ.
Итак, почему я снова задаю этот вопрос? Потому что я пробовал эти решения, и я следил за документами Google, следил за учебниками и youtube. Еще не повезло.
Охота, это то, что я сделал в своем проекте.
Проект: GoogleSignIn
dependencies {
classpath 'com.android.tools.build:gradle:2.2.0'
classpath 'com.google.gms:google-services:3.0.0'
}
Gradle (Модуль: приложение)
apply plugin: 'com.android.application'
android {
signingConfigs {
config {
keyAlias 'alias'
keyPassword 'keypass'
storeFile file('/home/reoxey/path/to/jks')
storePassword 'storepass'
}
}
compileSdkVersion 25
buildToolsVersion "25.0.0"
defaultConfig {
applicationId "reoxey.com.googlesignin"
minSdkVersion 19
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
signingConfig signingConfigs.config
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.0.0'
compile 'com.android.support:design:25.0.0'
compile 'com.google.firebase:firebase-auth:9.8.0'
compile 'com.google.android.gms:play-services-auth:9.8.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
LoginActivity.java
gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.web_client_key))
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
findViewById(R.id.sign_in_button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RC_SIGN_IN){
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()){
Toast.makeText(getApplicationContext(),"Nailed it",Toast.LENGTH_LONG).show();
}else {
Snackbar.make(mLoginFormView,result.getStatus().toString(),Snackbar.LENGTH_LONG).show();
Toast.makeText(getApplicationContext(),"Messed",Toast.LENGTH_LONG).show();
}
}
}
string.xml
<string name="web_client_key">123456789-clientwebapplication.apps.googleusercontent.com</string>
В манифесте нет специальной конфигурации, и я считаю, что там ничего не пропало.
Google-services.json
{
"project_info": {
"project_number": "{numeric-id}",
"firebase_url": "https://project--123456789.firebaseio.com",
"project_id": "project--123456789",
"storage_bucket": "project--123456789.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:{numeric-id}:android:sfdjgsdkdfgsfs",
"android_client_info": {
"package_name": "reoxey.com.googlesignin"
}
},
"oauth_client": [
{
"client_id": "{numeric-id}-androidkey.apps.googleusercontent.com",
"client_type": 1,
"android_info": {
"package_name": "reoxey.com.googlesignin",
"certificate_hash": "{sha1-from-jks-file}"
}
},
{
"client_id": "{numeric-id}-webapplication.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "{android-key}"
}
],
"services": {
"analytics_service": {
"status": 1
},
"appinvite_service": {
"status": 2,
"other_platform_oauth_client": [
{
"client_id": "{numeric-id}-webapplication.apps.googleusercontent.com",
"client_type": 3
}
]
},
"ads_service": {
"status": 2
}
}
}
],
"configuration_version": "1"
}
Oright, теперь консоль Firebase.
- созданный проект с именем пакета
- добавлен отпечаток sha1, сгенерированный из файла jks
- включена аутентификация для google signin
что я думаю, надеюсь, что я все предоставил,
так что мне здесь не хватает.
Когда я нажимаю на знак google, это приводит к ошибке с кодом статуса 12501. Я не знаю, что здесь не так. Кто угодно?
Спасибо в Advance.