inflearn logo
강의

講義

知識共有

【超初心者編】8つのアプリを作りながら学ぶAndroid Kotlin(アンドロイド・コトリン)

ダイエットメモアプリの紹介と匿名ログインしてみる

익명 인증 관련 질문있습니다.

496

kumin123

投稿した質問数 1

0

영상과 같이 따라하는중입니다.

영상에 나오는

try {

}

castch ( e : Exception) {

log.e("SPLASH", "회원가입 시켜줘야함")

}

까지는 작동이 잘 되는걸 로그로 확인했습니다.

그 후

auth.signInAnonymously()
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
                // Sign in success, update UI with the signed-in user's information
                Log.d(TAG, "signInAnonymously:success")
                val user = auth.currentUser
                updateUI(user)
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "signInAnonymously:failure", task.exception)
                Toast.makeText(baseContext, "Authentication failed.",
                        Toast.LENGTH_SHORT).show()
                updateUI(null)
            }
        }

이 부분을 가져와서

auth.signInAnonymously()
        .addOnCompleteListener(this) { task ->
            if (task.isSuccessful) {
            Log.e("SPLASH", "비회원로그인성공")
            } else {
            Log.e("SPLASH", "비회원로그인성공")
            }
        }

이런 식으로 디버깅해봐도 로그에는 if else문이 들어오기전에 있는 회원가입이 필요합니다. 의 내용까지만 log에 찍힙니다.

auth.signInAnonymously() 함수부터는 작동이 되지 않는걸로 판단이 되는데 혹시 이럴땐 어떻게 해야 하는지 알수있을까요?

아니면 같은 증상을 해결하신분 있으신가요?

도움 부탁드립니다

android firebase kotlin

回答 2

1

bokchi

안녕하세요

전체 코드와 로그 내역을 스크린샷으로 공유해주시겠어요?

확인 후 도움드릴 수 있을 것 같습니다.

0

kumin123

package org.image.exer_memo

import android.content.ContentValues.TAG
import android.content.Intent
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.os.Handler
import android.util.Log
import android.widget.Toast
import com.google.firebase.auth.FirebaseAuth
import com.google.firebase.auth.ktx.auth
import com.google.firebase.ktx.Firebase

class SplashActivity : AppCompatActivity() {

    private lateinit var auth: FirebaseAuth

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_splash)

        auth = Firebase.auth

        try{
            Log.e("SPLASH", auth.currentUser!!.uid)

            Handler().postDelayed({
                startActivity(Intent(this, MainActivity::class.java))
                finish()
            }, 3000)
        } catch (e :Exception) {

            Log.e("SPLASH", "회원가입이 필요합니다!!")

            auth.signInAnonymously()
                .addOnCompleteListener(this) { task ->
                    if (task.isSuccessful) {
                        Log.e("SPLASH", "비회원 로그인 성공")
                        Toast.makeText(this, "비회원 로그인 성공",
                            Toast.LENGTH_SHORT).show()

                        Handler().postDelayed({
                            startActivity(Intent(this, MainActivity::class.java))
                            finish()
                        }, 3000)

                        val user = auth.currentUser

                    } else {
                        Log.e("SPLASH", "비회원 로그인 실패")
                        Toast.makeText(this, "비회원 로그인 실패.",
                            Toast.LENGTH_SHORT).show()
                    }
                }
        }
    }
}

현재 사용한 코드고 if(task.isSuccessful)과 else부분이 작동이 안되는것 같아

log.e로 찍었습니다.

3.PNGlog.e는 위 메시지만 출력되고 있습니다.

 

1.PNG2.PNG혹시 필요할지 몰라 전체 로그 내역입니당.

0

bokchi

잘 하신 것으로 보이는데... 아래 2가지를 함께 확인해볼까요?

 

  1.  

auth.signInAnonymously()
                .addOnCompleteListener(this)

위의 코드를 아래와 같이 바뀌었을 때 로그가 어떻게 나오는지

auth.signInAnonymously()
                .addOnCompleteListener(this@MainActivity)

 

  1. 아래 코드를 try / catch 범위 밖으로 뺏을 때 로그가 어떻게 나오는지

auth.signInAnonymously()
                .addOnCompleteListener(this) { task ->
                    if (task.isSuccessful) {
                        Log.e("SPLASH", "비회원 로그인 성공")
                        Toast.makeText(this, "비회원 로그인 성공",
                            Toast.LENGTH_SHORT).show()

                        Handler().postDelayed({
                            startActivity(Intent(this, MainActivity::class.java))
                            finish()
                        }, 3000)

                        val user = auth.currentUser

                    } else {
                        Log.e("SPLASH", "비회원 로그인 실패")
                        Toast.makeText(this, "비회원 로그인 실패.",
                            Toast.LENGTH_SHORT).show()
                    }
                }

결과 공유해주시겠어요?

 

 

0

kumin123

늦은 시간까지 답변해주셔서 감사합니다.

우선 이 부분은 해결이 되었습니다.

왜인지는 모르겠는데 if / else 쪽이 작동하는데 시간이 굉장히 오래 걸리는것이 문제였던것 같습니다.

D/EGL_emulation: app_time_stats: avg=526.47ms min=21.20ms max=1258.37ms count=3

대충 이런식 로그가 뜨긴 하던데 작동 시키고 구글링몇십분 정도 하다보니 넘어가졌습니다.

신경써주시고 일일이 체크해주셔서 감사드립니당:)

 

1

bokchi

넵 추가적으로 안되는 부분 있으시면 언제든지 말씀해주세요~

주사위앱 소개 및 레이아웃 설정 문제

0

57

2

안드로이드 에뮬레이터가 실행이 안 되요...ㅠ

0

102

2

30 강 소스 좀 올려 주십시요

0

79

2

onBackPressed 함수가 동영상 하고 다르게 동작합니다.

0

89

2

ListView 초기 실행 안됩니다.

0

92

2

코딩을 완료하고난후 앱 실행시 자동 종료

0

69

2

datavinding에서 오류가 납니다.

0

51

1

안드로이드 스튜디오 버전 차이로 초기 empyt activity 선택하면 안됩니다.

0

105

2

context의 구별에 대하여

0

69

2

"프롤로그에서 ..." 오류 관련해 직전 질문에 대한 추가 질문입니다.

0

67

2

"프롤로그에서 콘텐츠가 허용되지 않습니다." 오류

0

153

3

해결완료

1

185

2

databinding 설정후 run하면 에러(해결)

0

222

2

databinding 설정 이후 실행시 에러

0

267

4

안드로이드 입문하는 사람입니다.

0

70

1

Firebase uid

0

75

3

activity_main 화면 다름

0

114

2

강의화면과 다른데 맞게진행되는것인가요...????

0

105

2

파이어베이스 질문

0

73

2

ActivityMainBinding에 오류가 납니다

0

132

2

선생님 onBackPressed 작동이 안되는거 같습니다

0

118

2

>app>res>layout 이 존재하지 않습니다.

0

119

2

안드로이드 스튜디오 미어캣 버전 사용 한글 깨짐

0

745

2

안드로이드 스튜디오 오류 발생 시 대처 방법은 요?

0

286

2