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 |
Tags
- 밑줄
- 안드로이드스튜디오
- androidstudio
- FRAGMENT
- RealtimeDB
- 팝업액티비티
- 안드로이드
- lifecyclescope
- Imageview
- ROOM
- 코틀린
- Kotlin
- firebasefunctions
- textview
- 안드로이드 스튜디오
- Activity
- BottomSheetDialog
- EditText
- ArrayList
- MaterialButton
- 랜덤ID
- Dialog
- ViewModel
- OutlinedButton
- button
- 뷰바인딩
- ButtonWithButton
- nav_graph
- Android
- firebase
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()
}
})
}