이번 시간에는 채팅앱 만들기 여덟 번째 시간
메시지 보내는 방법에 대하여 알아보겠습니다.
이전 포스팅은 아래 링크를 들어가시면 됩니다.
2022.10.26 - [안드로이드] - [안드로이드 코틀린] 채팅앱 만드는 방법 part7 - 채팅 액티비티
- 설명 -
1. 메시지 정보 담을 클래스
2. 대화 내용: message
3. 접속자 uId: sendId
data class Message(
var message: String?,
var sendId: String?
){
constructor():this("","")
}
- 설명 -
1. senderRoom = receiverUid + senderUid
보낸 이의 방의 값을 받는 이 uId와 보낸 이 uId로
합쳐서 만들었습니다.
2. receiverRoom = senderUid + receiverUid
받는 이의 방의 값을 보낸 이 uId와 받는 이 uId로
합쳐서 만들었습니다.
3. mDbRef.child("chats").child(senderRoom!!).child("messages").push()
.setValue(messageObject)
chat -> senderRoom -> message -> 메시지 저장
class ChatActivity : AppCompatActivity() {
private lateinit var receiverName: String
private lateinit var receiverUid: String
//바인딩 객체
private lateinit var binding: ActivityChatBinding
lateinit var mAuth: FirebaseAuth //인증 객체
lateinit var mDbRef: DatabaseReference//DB 객체
private lateinit var receiverRoom: String //받는 대화방
private lateinit var senderRoom: String //보낸 대화방
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityChatBinding.inflate(layoutInflater)
setContentView(binding.root)
//넘어온 데이터 변수에 담기
receiverName = intent.getStringExtra("name").toString()
receiverUid = intent.getStringExtra("uId").toString()
mAuth = FirebaseAuth.getInstance()
mDbRef = FirebaseDatabase.getInstance().reference
//접속자 uId
val senderUid = mAuth.currentUser?.uid
//보낸이방
senderRoom = receiverUid + senderUid
//받는이방
receiverRoom = senderUid + receiverUid
//액션바에 상대방 이름 보여주기
supportActionBar?.title = receiverName
//메시지 전송 버튼 이벤트
binding.sendBtn.setOnClickListener {
val message = binding.messageEdit.text.toString()
val messageObject = Message(message, senderUid)
//데이터 저장
mDbRef.child("chats").child(senderRoom).child("messages").push()
.setValue(messageObject).addOnSuccessListener {
//저장 성공하면
mDbRef.child("chats").child(receiverRoom).child("messages").push()
.setValue(messageObject)
}
}
}
}
2022.10.13 - [안드로이드] - [안드로이드 코틀린] 갤러리에서 다중 선택 사진 화면 전환하는 방법
2022.03.20 - [안드로이드] - [안드로이드] ToDoList SQLite 만드는 방법 part1 - 화면과 DB
2022.03.16 - [안드로이드] - [안드로이드] Firebase Storage 이미지 업로드 part1
[안드로이드 코틀린] 파이어베이스 사용자 CRUD 만드는 방법 part1 - 프로젝트 생성 (0) | 2022.11.07 |
---|---|
[안드로이드 코틀린] 채팅앱 만드는 방법 part9 - 메시지 가져오기 (0) | 2022.10.28 |
[안드로이드 코틀린] 채팅앱 만드는 방법 part7 - 채팅 액티비티 (0) | 2022.10.26 |
[안드로이드 코틀린] 채팅앱 만드는 방법 part6 - Firebase 메뉴 생성 및 로그아웃 (2) | 2022.10.25 |
[안드로이드 코틀린] 채팅앱 만드는 방법 part5 - Firebase 사용자 리스트 (0) | 2022.10.24 |
댓글 영역