Я выполняю практическую работу на занятиях, мы используем Kotlin и Android Studio, и мы пытаемся войти в наше приложение с помощью Google, но каждый раз, когда мы нажимаем на учетную запись, результат активности отменяется, и мы не знаем, почемуЯ изменил данные Firebase, установил SHA1 и SHA-256 и вставил json в студию Android.
Я создал OAuth в Google и использовал это «электронное письмо» как default_web_client_id
Мы можем открыть всплывающее окно Google, но при нажатии на учетную запись оно просто закрывается, и результат = РЕЗУЛЬТАТ ОТМЕНЕН
Я оставлю код, чтобы вы могли увидеть, есть ли в этом какая-то проблема
У нас очень мало опыта работы с Android
auth = FirebaseAuth.getInstance()
val db = Firebase.firestore
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build()
googleSignInClient = GoogleSignIn.getClient(this, gso)
findViewById(R.id.btnSignInWithGoogle).setOnClickListener {
signInWithGoogle()
}
/// Functions
private fun signInWithGoogle()
{
val signInIntent = googleSignInClient.signInIntent
launcher.launch(signInIntent)
}
private val launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult())
{result ->
if(result.resultCode == Activity.RESULT_OK){
val task = GoogleSignIn.getSignedInAccountFromIntent(result.data)
handleResults(task)
}
else if (result.resultCode == Activity.RESULT_CANCELED){
}
}
private fun handleResults(task: Task) {
if (task.isSuccessful) {
val account: GoogleSignInAccount? = task.result
updateUI(account)
} else {
updateUI(null)
}
}
private fun updateUI(account: GoogleSignInAccount?) {
if (account != null) {
val credential = GoogleAuthProvider.getCredential(account.idToken, null)
auth.signInWithCredential(credential).addOnCompleteListener {
if (it.isSuccessful) {
Log.d(TAG, "signInWithGoogle: Firebase authentication successful")
val intent = Intent(this, Register::class.java)
startActivity(intent)
finish()
} else {
Log.w(TAG, "signInWithGoogle: Firebase authentication failed", it.exception)
Toast.makeText(
baseContext,
"Authentication failed: ${it.exception?.message}",
Toast.LENGTH_SHORT
).show()
}
}
} else {
Log.w(TAG, "Google account is null")
Toast.makeText(this, "Google account is null", Toast.LENGTH_SHORT).show()
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... s-canceled
Результат активности входа в Google отменен ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1736267738
Anonymous
Я выполняю практическую работу на занятиях, мы используем Kotlin и Android Studio, и мы пытаемся войти в наше приложение с помощью Google, но каждый раз, когда мы нажимаем на учетную запись, результат активности отменяется, и мы не знаем, почемуЯ изменил данные Firebase, установил SHA1 и SHA-256 и вставил json в студию Android.
Я создал OAuth в Google и использовал это «электронное письмо» как default_web_client_id
Мы можем открыть всплывающее окно Google, но при нажатии на учетную запись оно просто закрывается, и результат = РЕЗУЛЬТАТ ОТМЕНЕН
Я оставлю код, чтобы вы могли увидеть, есть ли в этом какая-то проблема
У нас очень мало опыта работы с Android
auth = FirebaseAuth.getInstance()
val db = Firebase.firestore
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build()
googleSignInClient = GoogleSignIn.getClient(this, gso)
findViewById(R.id.btnSignInWithGoogle).setOnClickListener {
signInWithGoogle()
}
/// Functions
private fun signInWithGoogle()
{
val signInIntent = googleSignInClient.signInIntent
launcher.launch(signInIntent)
}
private val launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult())
{result ->
if(result.resultCode == Activity.RESULT_OK){
val task = GoogleSignIn.getSignedInAccountFromIntent(result.data)
handleResults(task)
}
else if (result.resultCode == Activity.RESULT_CANCELED){
}
}
private fun handleResults(task: Task) {
if (task.isSuccessful) {
val account: GoogleSignInAccount? = task.result
updateUI(account)
} else {
updateUI(null)
}
}
private fun updateUI(account: GoogleSignInAccount?) {
if (account != null) {
val credential = GoogleAuthProvider.getCredential(account.idToken, null)
auth.signInWithCredential(credential).addOnCompleteListener {
if (it.isSuccessful) {
Log.d(TAG, "signInWithGoogle: Firebase authentication successful")
val intent = Intent(this, Register::class.java)
startActivity(intent)
finish()
} else {
Log.w(TAG, "signInWithGoogle: Firebase authentication failed", it.exception)
Toast.makeText(
baseContext,
"Authentication failed: ${it.exception?.message}",
Toast.LENGTH_SHORT
).show()
}
}
} else {
Log.w(TAG, "Google account is null")
Toast.makeText(this, "Google account is null", Toast.LENGTH_SHORT).show()
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79336719/google-sign-in-activity-result-is-canceled[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия