• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

회원가입 시 자꾸 '실패'만 뜹니다.

22.07.25 18:57 작성 조회수 469

0

항상 강의 잘 듣고 있습니다.

 

회원가입 부분을 구현하는 중, 다 맞게 입력했는데 자꾸 '실패'라고 뜨는 현상을 맞이하여

질문드립니다.

 

authentication에서 이메일/비밀번호까지 수정을 다 했는데, 어떻게 된 건지 궁금합니다.

 

혹시 강의 자료 중에 소스 코드가 어디에 위치해 있는지 알려주실 수 있으신가요?

다른 오류가 생기면 그걸 먼저 찾아보겠습니다.

 

 

아래는 코드입니다.

 

package koreatraveltipsintro

import android.content.ContentValues.TAG
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.widget.Toast
import androidx.databinding.DataBindingUtil
import com.example.koreatraveltips.MainActivity
import com.example.koreatraveltips.R
import com.example.koreatraveltips.databinding.ActivityJoinactivityBinding
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.ktx.auth
import com.google.firebase.ktx.Firebase


class joinactivity : AppCompatActivity() {


private lateinit var auth : FirebaseAuth

private lateinit var binding : ActivityJoinactivityBinding
//이와 관해서 오류가 날 수도 있는데, 당황하지 말고 문제의 원인을 구글링해서 문제를 해결하자.
//gradle에 id 'kotlin-android-extensions'을 추가해 주면 된다.
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_joinactivity)

auth= Firebase.auth

binding = DataBindingUtil.setContentView(this, R.layout.activity_joinactivity)
//해당 레이아웃 파일의 부분의 데이터를 바인딩 하겠다는 코드이다.

binding.joining.setOnClickListener {
//윗줄의 코드는 '회원가입하기'라는 버튼을 누르면 어떻게 되는지에 대해 구현하는 코드라는 의미이다.
//회원 가입 버튼을 클릭을 하면, 위의 정보들을 가져 오겠다는 의미이다.

//변수를 하나 만들고, 디폴트 값을 true라고 정한다.
//그리고, 아래의 조건들에 걸리면, 값을 false로 바꾸는 것이다.

var isTrue = true

val email = binding.email.text.toString()
val password = binding.password.text.toString()
val passwordcheck = binding.passwordcheck1.text.toString()

//저기 값이 비어 있는지 확인한다.

if(email.isEmpty()) //만약 이메일 값이 비어 있다면
{//아래와 같은 값을 띄운다.
Toast.makeText(this,"이메일을 입력해주세요.",Toast.LENGTH_LONG).show()
isTrue = false
}

if(password.isEmpty()) //password가 비어도 마찬가지.
{
Toast.makeText(this,"password1을 입력하시오.",Toast.LENGTH_LONG).show()
isTrue = false
}
if(passwordcheck.isEmpty())
{
Toast.makeText(this,"password2를 입력하시오.",Toast.LENGTH_LONG).show()
isTrue = false
}

//비밀번호가 서로 다르다면 비밀번호를 같게 입력해달라고 메시지를 띄운다.
if(!password.equals(passwordcheck))
{
Toast.makeText(this,"비밀번호를 똑같이 입력하시오",Toast.LENGTH_LONG).show()
isTrue = false
}

//비밀번호의 길이를 확인
if(password.length < 6)
{
Toast.makeText(this,"비밀번호를 6자리 이상으로 입력해주세요.",Toast.LENGTH_LONG).show()
isTrue = false
}

//만약 위의 필터링을 모두 통과했다면, 아래의 것들을 실행시켜보자.
if(isTrue==true)
{
auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
// Sign in success, update UI with the signed-in user's information
Toast.makeText(this,"성공",Toast.LENGTH_LONG).show()
//회원가입이 성공적으로 끝이 난다면, mainactivity로 이동한다.
val intent = Intent(this, MainActivity::class.java)
startActivity(intent)

//그런데, 이렇게만 코드를 짜면, 뒤로가기로 앱을 끌 경우
//회원가입 페이지가 나와버리는 결과가 발생한다.
//그래서 코드를 더 짠다.

} else {
// If sign in fails, display a message to the user.
Toast.makeText(this,"실패",Toast.LENGTH_LONG).show()
Log.e(TAG, "createUserWithEmail:failure", task.exception)
}
}
}
}


아래는 오류 화면 캡쳐입니다. 감사합니다.

답변 1

답변을 작성해보세요.

0

이메일 로그인을 파이어베이스 콘솔에서 승인해주셨나요?

https://stackoverflow.com/questions/55327973/firebase-authentication-error-the-given-sign-in-provider-is-disabled

 

이장한님의 프로필

이장한

질문자

2022.08.12

네 그랬더니 해결이 됩니다 감사합니다!!