작성
·
623
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
네 그랬더니 해결이 됩니다 감사합니다!!