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
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- ๋ผํ๋ผ์ค์๋ง๋
- ์ค๋ธ์
- ํ๋ก๊ทธ๋๋ฐ
- ์นํผ๋ธ๋ฆฌ์ฑ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ์ฑ
- ์ค๋ผํด
- ๋ฐ์ํ
- ์ปดํจํฐ๊ณผํ
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- database
- css
- ์๋ฐ์คํฌ๋ฆฝํธ
- html
- ๋ ์
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ์๋ฐ
- ComputerScience
- ํ์ด์ฌ
- JavaScript
- Python
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ฝ๋ฉ
- Java
- ๊ฐ๋ฐ
- K๋ฐฐํฐ๋ฆฌ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ๋ฆฌ์กํธ
- ์ํ
Archives
- Today
- Total
JiYoung Dev ๐ฅ
[Android] FireBase ์ฐ๋ (2023.07.25~27) ๋ณธ๋ฌธ
FireBase DataBase ๊ฐ์ฒด ๊ฐ์ ธ์ค๊ธฐ
// Write a message to the database
//App์ ์ฐ๊ฒฐ๋์ด ์๋ FireBase DataBase ๊ฐ์ฒด ๊ฐ์ ธ์ค๊ธฐ
val database = Firebase.database
DataBase ๊ฒฝ๋ก ๊ฐ์ ธ์ค๊ธฐ
//DataBase ๊ฒฝ๋ก ๊ฐ์ ธ์ค๊ธฐ
val myRef = database.getReference("message")
Data ์ถ๊ฐ
myRef.push().setValue(KakaoVO(R.drawable.img2, "๋", "๋ญ๋จน์๋ญ", "์ค์ 10:30"))
push : ๋๋คํ ๋ฌธ์์ด๋ก key๊ฐ์ ์ค์
๊ฐ์ key๊ฐ์ผ๋ก ๋ฐ์ดํฐ ๋ฃ์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ๊ฐฑ์ ๋จ (์ถ๊ฐX)
DataBase ๋ฐ์ดํฐ ๋ถ๋ฌ์์ ์ฝ๊ธฐ
myRef.addChildEventListener(ChildEvent(data, adapter))
addChildEventListener
Firebase Realtime Database์์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํ๊ณ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ์๋
๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋๊ฑฐ๋ ์ญ์ ๋๋ ๋ฑ์ ์ด๋ฒคํธ๋ฅผ ๊ฐ์งํ ์ ์์
childEvent class
package com.sjy.ex20230720
import com.google.firebase.database.ChildEventListener
import com.google.firebase.database.DataSnapshot
import com.google.firebase.database.DatabaseError
class ChildEvent(var data : ArrayList<KakaoVO>, var adapter : KakaoAdapter): ChildEventListener{
//์์ฑ์๋ก ๋ฐ์ดํฐ ์ ๋ฌ ๋ฐ๊ธฐ
override fun onChildAdded(snapshot: DataSnapshot, previousChildName: String?) {
//๋ฐ์ดํฐ ์ถ๊ฐ ๊ฐ์ง
//snapshot => firebase์ ์ ์ฅ๋ ๋ฐ์ดํฐ
//json๊ตฌ์กฐ๋ก ์๋ตํจ => KakaoVO ํํ๋ก ๋ณํ
var temp : KakaoVO? = snapshot.getValue(KakaoVO::class.java)
data.add(temp!!) //!! : not null ๋จ์
}
override fun onChildChanged(snapshot: DataSnapshot, previousChildName: String?) {
//๋ฐ์ดํฐ ๋ณํ ๊ฐ์ง
}
override fun onChildRemoved(snapshot: DataSnapshot) {
//๋ฐ์ดํฐ ์ญ์ ๊ฐ์ง
}
override fun onChildMoved(snapshot: DataSnapshot, previousChildName: String?) {
//๋ฐ์ดํฐ ์ด๋ ๊ฐ์ง
}
override fun onCancelled(error: DatabaseError) {
//๋ฌธ์ ๋ฐ์ ๊ฐ์ง
}
}
VO
package com.sjy.ex20230720
data class KakaoVO(var img : Int? = 0, var name : String? = "", var msg : String? = "", var time : String? ="")
//ChildEvent ํด๋์ค์์ DataSnapshot์ KakaoVO๋ก ํ๋ณํํ๊ณ ์์
//=> getValue(KakaoVO::class.java)
//java๋ฒ์ ผ => getValue(KakaoVO.class)
//์ค์! ํ๋ณํ์ ๋ฐ๋์ ๊ธฐ๋ณธ ์์ฑ์๊ฐ ์ ์๋์ด ์์ด์ผ ํจ!
//๊ธฐ๋ณธ์์ฑ์๋ ? ๋งค๊ฐ๋ณ์๊ฐ ํ๋๋ ์๋ ์์ฑ์ => KakaoVO(){}
//์์ฑ์๋ ๊ฐ์ฒด๋ฅผ ์์ฑํ ๋ ์๋์ผ๋ก ํ ๋ฒ ํธ์ถ๋๋ ๋ฉ์๋
//Kotlin์์ ๊ธฐ๋ณธ ์์ฑ์ ๋ง๋๋ ๋ฐฉ๋ฒ! => ๋งค๊ฐ๋ณ์์ null๊ฐ์ ํ์ฉํด์ฃผ๋ฉด ๋จ
Volley vs FireBase
Volley
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ ๋
- ex. ํ์๊ฐ์ , ๋ก๊ทธ์ธ
FireBase, FCM(์๋ฆผ๋์ฐ๊ธฐ)
- ์ค์๊ฐ ํต์
- ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๊ฐ๋จํ ๋
- ex. ์ฑํ
'full stack > ์๋๋ก์ด๋' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Android] ๋ด๊ฐ ๋ณด๋ธ ์ฑํ ์ค๋ฅธ์ชฝ์ ๋ฐฐ์นํ๊ธฐ (2023.07.27) (0) | 2023.07.27 |
---|---|
[Android] ์๋๋ก์ด๋ ์คํ๋์ค ์ดํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ (2023.07.27) (0) | 2023.07.27 |
[Android] SharedPreference (2023.07.26) (0) | 2023.07.26 |
[Android] android studio ๋ก๋ฉ ํ๋ฉด ์ค์ (2023.07.26) (0) | 2023.07.26 |
[Android] android studio ํฐํธ ์ ์ฉ (2023.07.26) (0) | 2023.07.26 |