Database client behavior on Android and open sourcing your app with Doug Stevenson – #AskFirebase

반짝이는 불빛을 응시하면 그게 메인 카메라입니다 Ask Firebase 테이크 원 여러분 안녕하세요 #AskFirebase에 오신 것을 환영합니다 저희 아직도 해시태그 쓰나요? 좋습니다 더그 스티븐슨 입니다 Firebase팀의 개발 대변인이죠 에피소드에 앞서 곧 열릴 이벤트를 간단히 소개해 드릴게요 Firebase 회담이 베를린에서 11월 7일 열립니다 모든 행사 대담은 Youtube로 올릴 예정이니 기대하세요 여기서 보시고 싶다면 필히 구독 버튼을 눌러주세요 이제 질문 좀 답해볼까요? 몸 좀 풀게요 네, 방금 들어온 질문 Youtube에서 비니스 님이 물어보셨네요 안드로이드에서 디버그 애널리틱스와 릴리즈 애널리틱스를 구분하는 방법이 있나요? 이 부분은 애널리틱스 뿐 아니라 오류 보고에 대한 내용이기도 하니 좋은 질문이네요 디버그에서 오류보고와 애널리틱스 자료가 뒤섞이는 일이 있으면 안 되겠죠 따로 관리하고 싶을 겁니다 가장 쉬운 방법은 하나의 프로젝트에 두 개의 다른 앱을 세팅하는 거죠 하나는 디버그를 위해, 그리고 제작을 위해 두 개의 앱 ID로 두 개의 앱을 만드실 수 있어요 그러면 안드로이드 빌드에서 두 개의 빌드로 나눌 수 있습니다 2개의 애플리케이션 ID로 하나는 디버그, 다른 건 릴리즈 일은 디버그 버전에서만 하시고 릴리즈 버전만 퍼블리싱 하면 됩니다 더 자세한 사항은 제가 최근에 작성한 블로그 포스팅이 있으니 블로그를 방문해주세요 여기 링크 남겨요 거기서 보실 수 있을 겁니다 하나의 프로젝트에서 두 개의 앱을 만들든 두 개의 다른 프로젝트를 만들든 블로그를 읽어보시면 뭐가 좋을지 알 수 있어요 좋은 질문이었어요 감사합니다 자, 다음 질문 받아볼까요? 다음은 Youtube의 아징캬 님이 보내주셨어요 두 개의 안드로이드 앱에서 하나의 데이터베이스를 공유할 수 있나요? 좋은 질문입니다 하나의 안드로이드 앱안에서 다른 두 개의 프로젝트 데이터베이스에 접근할 필요가 있죠 그러기 위해선 추가로 짜넣어야 하는 코드가 있어요 보통 프로젝트 설정할 때 추가 코딩을 하진 않죠 그건 안드로이드 플러그인에서 이뤄지니까요 하나의 앱 안에서 두 개의 프로젝트를 사용하신다면 Firebase옵션 오브젝트를 생성하셔야 합니다 그 옵션 오브젝트는 API키나 애플리케이션 ID같은 몇 가지 설정을 필요로 해요 이런 값이 주어졌다면 Firebase옵션 오브젝트를 만들어서 FirebaseApp에 넣습니다 그러면 새로운 버전이 구성돼서 다른 프로젝트의 데이터베이스에 접근할 수 있게 됩니다 실제 코딩을 보고 싶으시다면 Stack overflow 포스팅을 작성했으니 한 번 보세요 그 포스팅은 여기 하단의 링크를 방문하시면 됩니다 금방 하나의 앱에서 두 개의 데이터베이스를 갖도록 설정하실 겁니다 감사합니다, 아징캬님 훌륭한 질문이었어요 다음 질문이 들어왔네요 Youtube에서 텔모님께서 물어봐 주셨네요 안드로이드 앱이 종료되면 이벤트에 어떤 일이 생기나요? 안드로이드 앱은 백그라운드로 넘어가도 종료되는 것이 아니기 때문에 흥미로운 질문이네요 백그라운드로 가게 돼도 계속 실행되다가 시간이 지나서야 종료됩니다 그러니 안드로이드에서 데이터베이스 수신자가 등록되어있다면 백그라운드에 가도 수신자들은 그대로 등록된 상태로 남아 있게 됩니다 데이터베이스 이벤트가 발생하면 반응합니다 하지만 안드로이드 단에서 메모리 복구를 이유로 앱이 종료되면 이벤트는 전해지지 않게 되죠 수신자도 바로 끊깁니다 과정 자체가 종료돼서 재수신할 수 없어요 하지만 다음에 앱을 실행하면 다시 등록할 수 있습니다 다시 이벤트를 보내게 되죠 개발하실 때, 백그라운드로 가도 수신자가 종료되지 않는 점을 알아두세요 안드로이드가 앱을 종료시키면 없어진다는 것도요 훌륭합니다 감사합니다 다음 질문 다음 질문이라고 할 때 이렇게 해도 되나요? 다음 질문은 Youtube에서 다리안토 님이 주셨어요 안드로이드에서의 Firebase 저장소에 대한 스크린캐스트가 있나요? 네, 훌륭한 질문인 게, 제가 방금 녹화하고 왔어요 있습니다 여기 Youtube Firebase 채널에서 보실 수 있습니다 아래 링크를 따라가 주세요 그 영상에서 저는 어떻게 이미지를 업로드하고 어떻게 Firebase 저장소서 이미지를 가져오는지 설명하죠 괜찮습니다 가셔서 보세요 좋습니다 다음 질문으로 넘어갈게요 콘스탄틴님께서 문의하셨어요 안드로이드서 수신자 없이 쿼리를 돌릴 수 있나요? Firebase DB는 안드로이드에서 수신자를 통해서 모든 일을 수행합니다 수신하는 모든 것, 데이터들은 전부 수신자를 통하죠 그러니 그것없이 쿼리를 돌려봤자 돌아오는 반응이 없겠죠 그렇게 되진 않습니다 모두 수신자를 통하셔야 합니다 만일 한 번의 결과만 보자고 쿼리를 돌리신다면 AddListener SingleEvent 으로 반복하지 않고 한 번만의 수신으로 결과를 보실 수있습니다 좀 길죠? 그건 수신자로하여금 한 번만 수신하게 만들어서 등록하고 삭제하는 과정을 알아서 합니다 약간의 꼼수지만 제법 유용합니다 좋은 질문이네요 감사합니다 자, 다음 질문을 한 번 볼게요 퀴오라님께서 보내셨네요 Firebase에서 Git 저장소를 호스팅되나요? Firebase 프로젝트에서 코드 호스팅이 중요 기능은 아니지만, 가능합니다 Firebase 프로젝트는 기본적으로 Google 클라우드 프로젝트입니다 Google 클라우드 프로젝트에서 가능하다면 Firebase 프로젝트에서 가능하죠 Google 클라우드 프로젝트에는 클라우드 저장소라는 기능이 있어요 클라우드 저장소에서는 프로젝트에서 Git를 통해 코드를 호스팅할 수 있습니다 그러니 Firebase 프로젝트에서도 클라우드 저장소를 기능으로 사용해서 호스팅을 할 수 있죠 가서 확인해보세요 꽤 유용합니다 질문 감사드려요 아, 질문이 들어왔네요 같은 분께서 이어서 질문을 주셨어요 Firebase 안드로이드 프로젝트 소스를 오픈해도 되나요? 물론이죠 당연히 하셔도 됩니다 하지만 꼭 알아두셔야 하는 것은 콘솔에서 다운받으신 JSON 파일은 소스 제어에 넣지 말고 git무시 항목에 넣어두셔야 한다는 것입니다 소스 제어에서 특정 파일을 제외하기 위함이죠 그러셔야 하는 이유는 거기에는 프로젝트에 대한 중요한 정보들이 있어서 공유하는 것이 바람직하지 않아서죠 누군가 소스를 퍼갈 경우 자신들만의 Google 서비스 JSON파일을 콘솔에서 가져와야 합니다 readme 문서에 적어두셔서 사람들에게 미리 공지해두세요 어떤 소스를 오픈하실지 벌써 기대되네요 감사합니다 오늘도 여러분들의 다양한 질문들을 받아봤네요 다른 문의사항이 있다면 #AskFirebase 해시태그를 사용하셔서 SNS에서 물어봐 주세요 베를린에서 Firebase 회담하는 것도 잊지 마시고요 저도 갑니다 거기서 뵈었으면 좋겠네요 못rk신다면 여기 채널에도 관련 영상들이 올라갈 예정이니 기다려주세요 오늘도 함께해주셔서 감사합니다 Ask Firebase에 다시 오셔서 감사합니다 오늘 집중적으로 알아보실 몸을 풀자, 예! 해시태그!