이번 시간에는 채팅앱 만들기 여섯 번째 시간
메뉴를 추가해서 로그아웃 기능을 구현하겠습니다.
이전 포스팅은 아래 링크를 들어가시면 됩니다.
2022.10.24 - [안드로이드] - [안드로이드 코틀린] 채팅앱 만드는 방법 part5 - Firebase 사용자 리스트
res -> 마우스 오른쪽 -> Android Resource File
File name: menu
Root element: Menu
- 설명 -
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>
- 설명 -
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 - 권한 및 설정
2022.09.20 - [안드로이드] - [안드로이드 코틀린] 코드(MainActivity) 에서 배경 색상 바꾸는 다양한 방법
2022.09.19 - [안드로이드] - [안드로이드 코틀린] RecyclerView 홀수 행, 짝수 행 별 색상 다르게 하는 방법
[안드로이드 코틀린] 채팅앱 만드는 방법 part8 - 메시지 보내기 (0) | 2022.10.27 |
---|---|
[안드로이드 코틀린] 채팅앱 만드는 방법 part7 - 채팅 액티비티 (0) | 2022.10.26 |
[안드로이드 코틀린] 채팅앱 만드는 방법 part5 - Firebase 사용자 리스트 (0) | 2022.10.24 |
[안드로이드 코틀린] 채팅앱 만드는 방법 part4 - Firebase 로그인 기능과 사용자 저장 기능 (0) | 2022.10.21 |
[안드로이드 코틀린] 채팅앱 만드는 방법 part3 - Firebase 인증 서비스 (2) | 2022.10.20 |
댓글 영역