상세 컨텐츠

본문 제목

[안드로이드 코틀린] 채팅앱 만드는 방법 part6 - Firebase 메뉴 생성 및 로그아웃

안드로이드

by aries574 2022. 10. 25. 15:19

본문


이번 시간에는 채팅앱 만들기 여섯 번째 시간

메뉴를 추가해서 로그아웃 기능을 구현하겠습니다.

이전 포스팅은 아래 링크를 들어가시면 됩니다.

2022.10.24 - [안드로이드] - [안드로이드 코틀린] 채팅앱 만드는 방법 part5 - Firebase 사용자 리스트

 

[안드로이드 코틀린] 채팅앱 만드는 방법 part5 - Firebase 사용자 리스트

이번 시간에는 채팅앱 만들기 다섯 번째 시간 로그인을 하면 등록한 사용자 리스트를 보여주는 방법을 알아보겠습니다. 이전 포스팅은 아래 링크를 들어가시면 됩니다. 2022.10.21 - [안드로이드] -

aries574.tistory.com


목차

1. 실행 화면
2. 메뉴 화면
3. 메인 코드 MainActivity.kt


1. 실행 화면

 


2. 메뉴 화면

res -> 마우스 오른쪽 -> Android Resource File

File name: menu

Root element: Menu

menu.xml

 - 설명 -

 1. 로그아웃 기능 item

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/log_out"
        android:title="Log Out"/>
</menu>

 

반응형

 

3. 메인 코드 MainActivity.kt

- 설명 -

 1. onCreateOptionsMenu

   생성할 메뉴 지정 함수

 2. onOptionsItemSelected

   메뉴 아이템 선택 기능 구현 함수

 3. mAuth.signOut()

   인증 서비스 로그아웃

class MainActivity : AppCompatActivity() {

    lateinit var binding: ActivityMainBinding
    lateinit var adapter: UserAdapter

    private lateinit var mAuth: FirebaseAuth
    private lateinit var mDbRef: DatabaseReference

    private lateinit var userList: ArrayList<User>

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        setContentView(binding.root)

        //인증 초기화
        mAuth = Firebase.auth

        //db 초기화
        mDbRef = Firebase.database.reference

        //리스트 초기화
        userList = ArrayList()

        adapter = UserAdapter(this, userList)

        binding.userRecycelrView.layoutManager = LinearLayoutManager(this)
        binding.userRecycelrView.adapter = adapter

        //사용자 정보 가져오기
        mDbRef.child("user").addValueEventListener(object:ValueEventListener{
            override fun onDataChange(snapshot: DataSnapshot) {
                for(postSnapshot in snapshot.children){
                    //유저 정보
                    val currentUser = postSnapshot.getValue(User::class.java)

                    if(mAuth.currentUser?.uid != currentUser?.uId){
                        userList.add(currentUser!!)
                    }
                }
                adapter.notifyDataSetChanged()
            }

            override fun onCancelled(error: DatabaseError) {
                //실패 시 실행
            }
        })
    }//onCreate

    override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        menuInflater.inflate(R.menu.menu, menu)
        return super.onCreateOptionsMenu(menu)
    }

    override fun onOptionsItemSelected(item: MenuItem): Boolean {
        if(item.itemId == R.id.log_out){
            mAuth.signOut()
            val intent = Intent(this@MainActivity, LogInActivity::class.java)
            startActivity(intent)
            finish()
            return true
        }
        return true
    }
}

2022.09.28 - [안드로이드] - [안드로이드 코틀린] HTTP 통신 Retrofit2 사용법 part1 - 권한 및 설정

 

[안드로이드 코틀린] HTTP 통신 Retrofit2 사용법 part1 - 권한 및 설정

Retrofit2 라이브러리를 이용해서 HTTP 통신을 하는 방법을 알아보겠습니다. 이번 시간에는 권한 및 설정을 하겠습니다. 목차 1. 권한 등록 2. 라이브러리 등록 3. 모델 클래스 4. 서비스 인터페

aries574.tistory.com

2022.09.20 - [안드로이드] - [안드로이드 코틀린] 코드(MainActivity) 에서 배경 색상 바꾸는 다양한 방법

 

[안드로이드 코틀린] 코드(MainActivity) 에서 배경 색상 바꾸는 다양한 방법

이번 시간에는 코드(MainActivity)에서 텍스트뷰 색상을 다양하게 변경하는 방법을 알아보겠습니다. 목차 1. 실행 화면 2. 메인 화면  activity_main.xml 3. 메인 코드  MainActivity.kt 1. 실행 화..

aries574.tistory.com

2022.09.19 - [안드로이드] - [안드로이드 코틀린] RecyclerView 홀수 행, 짝수 행 별 색상 다르게 하는 방법

 

[안드로이드 코틀린] RecyclerView 홀수 행, 짝수 행 별 색상 다르게 하는 방법

이번 시간에는 리스트에 쓰이는 RecyclerView 화면에서 홀수 행, 짝수 행 별 색상 다르게 보여주는 방법 알아보겠습니다. 목차 1. 실행 화면 2. 아이템 화면 list_item.xml 3. 아이템 어댑터 ListAdapter

aries574.tistory.com

 

반응형

관련글 더보기

댓글 영역