Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- androidstudio
- button
- 랜덤ID
- 코틀린
- 안드로이드 스튜디오
- 뷰바인딩
- firebase
- ButtonWithButton
- FRAGMENT
- nav_graph
- 안드로이드
- lifecyclescope
- MaterialButton
- BottomSheetDialog
- 팝업액티비티
- 안드로이드스튜디오
- ROOM
- textview
- Android
- 밑줄
- EditText
- Dialog
- RealtimeDB
- Imageview
- OutlinedButton
- ViewModel
- ArrayList
- Kotlin
- firebasefunctions
- Activity
Archives
- Today
- Total
안드로이드 앱 개발
RealtimeDB에 데이터 중복체크를 하고 싶다... - Kotlin 본문
Firebase RealtimeDB를 사용하면서 데이터 중복저장을 막기 위해
저장하려고하는 값이 이미 존재하는지 확인해야하는 상황이 있다.
예를 들면,
고객데이터를 저장하는데, 동일한 번호로 중복을 막는 상황
private fun isVaildNumberCheck(){
//전화번호 중복 체크
database.child("users").child(uid).child("customers").orderByChild("customerNumber").equalTo(customerNumber)
.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (!dataSnapshot.exists()) {
mCreateCustomer()
} else {
mShowShortToast("이미 등록된 번호입니다")
}
}
override fun onCancelled(databaseError: DatabaseError) {
Toast.makeText(applicationContext,
databaseError.message,
Toast.LENGTH_SHORT).show()
}
})
}
//전화번호로 중복 체크를 한다.
addValueEventListner를 달았을 때는 오류가 있어서
addListenerForSingleValueEvent로 바꿨더니 잘 작동한다.
Version 2
이메일 중복체크를 해보았다.
private fun emailDuplicateCheck(){
//이메일 중복 체크
database.child("users").orderByChild("email").equalTo(emailStr)
.addListenerForSingleValueEvent(object : ValueEventListener {
override fun onDataChange(dataSnapshot: DataSnapshot) {
if (!dataSnapshot.exists()) {
val intent = Intent(applicationContext, ActivityJoin1::class.java)
intent.putExtra("email", emailStr)
intent.putExtra("password", passwordStr)
startActivity(intent)
} else {
mShowShortToast("이미 존재하는 이메일 계정이 있습니다.")
}
}
override fun onCancelled(databaseError: DatabaseError) {
Toast.makeText(applicationContext,
databaseError.message,
Toast.LENGTH_SHORT).show()
}
})
}