강의

멘토링

로드맵

Inflearn コミュニティ Q&A

pajang15157660 のプロフィール画像
pajang15157660

投稿した質問数

[初中級編] Androidデーティングアプリ作成(Android Kotlin)

マイページ作成

auth.currentUser?.uid.toString() 가 null 이 나와요

作成

·

187

·

編集済み

0

auth.currentUser?.uid.toString() 가 null 이 나와요

잘나왔었는데 몇시간뒤에 하니까 null 이 나옵니다.

 

로그인 -> 어플종료 -> 다시 어플 키면 uid가 나오는데

MypageActivity가면 uid가 null입니다.

 

firebase는 이상없이 작동합니다

 

package com.example.sogating.setting

import android.os.Bundle
import android.util.Log
import android.widget.ImageView
import android.widget.TextView
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import com.example.sogating.R
import com.example.sogating.auth.UserDataModel
import com.example.sogating.utils.FirebaseAuthUtils
import com.example.sogating.utils.FirebaseRef
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
import com.google.firebase.database.ValueEventListener

class MyPageActivity : AppCompatActivity() {

    private val TAG = "MyPageActivity"

    private val uid = FirebaseAuthUtils.getUid()

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

        getMyData()
    }

    private fun getMyData() {

        val myImage = findViewById<ImageView>(R.id.myImage)
        val myUid = findViewById<TextView>(R.id.myUid)
        val myNickname = findViewById<TextView>(R.id.myNickname)
        val myAge = findViewById<TextView>(R.id.myAge)
        val myCity = findViewById<TextView>(R.id.myCity)
        val myGender = findViewById<TextView>(R.id.myGender)

        val postListener = object : ValueEventListener {
            override fun onDataChange(dataSnapshot: DataSnapshot) {
                // Get Post object and use the values to update the UI

                Log.d(TAG, dataSnapshot.toString())
                val data = dataSnapshot.getValue(UserDataModel::class.java)

//                myUid.text = data!!.uid
//                myNickname.text = data.nickname
//                myAge.text = data.age
//                myCity.text = data.city
//                myGender.text = data.gender

            }

            override fun onCancelled(databaseError: DatabaseError) {
                // Getting Post failed, log a message
                Log.w(TAG, "loadPost:onCancelled", databaseError.toException())
            }
        }
        
        // why null ?
        Log.d(TAG, uid)
        FirebaseRef.userinfoRef.child(uid).addValueEventListener(postListener)
    }
}

 

 

package com.example.sogating.utils

import com.google.firebase.auth.FirebaseAuth

class FirebaseAuthUtils {

    companion object {

        private lateinit var auth: FirebaseAuth

        fun getUid() : String {
            auth = FirebaseAuth.getInstance()

            return auth.currentUser?.uid.toString()
        }
    }
}

 자세한 소스 입니다.

 

https://github.com/dongmyoungLee/sogating_app

kotlin

回答 1

0

bokchi님의 프로필 이미지
bokchi
インストラクター

안녕하세요
정확한 원인 파악을 위해 좀 더 자세히 설명주실 수 있나요?

1. 잘나왔었는데 몇시간뒤에 하니까 null 이 나옵니다.

-> 처음에 잘 되다가 갑자기 null값이 나온다는 말씀이실까요?

2. 로그인 -> 어플종료 -> 다시 어플 키면 uid가 나오는데
MypageActivity가면 uid가 null입니다.

-> MyPageActivity에서만 null인가요?

혹시 로그를 출력하신 것을 함께 스크린샷으로 전달주실 수 있으실까요?

pajang15157660 のプロフィール画像
pajang15157660

投稿した質問数

質問する