안드로이드 앱만들기) 파이어베이스 데이터베이스에 해시태그 저장 관련 질문
조회수 1132회
안녕하세요~
만들고 있는 앱에 해시태그를 구현하고, 데이터베이스에 저장하는 데 막혀서 질문드립니다..ㅠ
{
"blogs": {
"blog1": {
"name": "blogpost1",
"text": "blogpost1 text"
"tags": {
//여러개의 태그
"tag1": true,
"tag2": true,
"tag3": true
}
}
위와 같은 structure로 파이어베이스에 태그를 저장하려고 합니다. (key:String, value:Boolean)
//태그 받아오고 분리
var tags = addphoto_tag_plants.text.toString()
var tagArray = tags.split(" ")
(중간생략)
storageRef?.putFile(photosUri!!.getItemAt(i).uri)?.continueWithTask { task: Task<UploadTask.TaskSnapshot> ->
return@continueWithTask storageRef.downloadUrl
}?.addOnSuccessListener { uri ->
//데이터 매칭
contentDTO.imageUrl = uri.toString()
contentDTO.uid = auth?.currentUser?.uid //유저의 UID
....
(중간생략)
...
//질문 부분
for (i in 0 until tagArray.size) {
contentDTO.tag[tagArray[i]] = true
}
savepath?.set(contentDTO)
setResult(Activity.RESULT_OK)
finish()
}
(contentDTO 데이터 클래스의 tag 는 MutableMap = HashMap() )
입력된 태그가 1개이면 contentDTO.tag[tagname] = true 이런식으로 하면 되지만,
입력된 태그가 여러개일 경우 tagArray를 돌면서 0부터 i 번째까지를 key로 받아와서 contentDTO.tag에 저장해야 하는데 어떤식으로 코드를 짜야 하는걸까요..? 고수님들의 답변 기다리겠습니다....
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
class ContentDTO { val tag: MutableMap<String, Boolean> = HashMap<String, Boolean>(); } fun main(args: Array<String>) { val contentDTO = ContentDTO(); var tagArray = "kotlin android hashtag firebase".split(" ") tagArray.associateTo(contentDTO.tag) {it to true} println(contentDTO.tag) }
- 와 정말 감사합니다!!! 제 코드에 적용해봤더니 제대로 작동하네요 ㅎㅎㅎ 덕분에 하나 또 배워갑니다 감사합니다~~~~~~~~~ 알 수 없는 사용자 2019.7.26 22:12
댓글 입력