Firebase

    [Firebase] Authentication Rest API(OAuth)

    Firebase Authentication Authentication(인증)? 앱, 웹에 모든 사용자가 모든 컨텐츠에 접근할 수 있어야 하는것은 아니다. 이런 접근에 대한 권한을 "인증(Authentication)"을 통해 보호할 수 있다. 페이지 뿐만 아닌 데이터베이스에 저장된 데이터, 앱의 기능들을 인증을 통해 권한을 제어하고 데이터를 보호할 수 있다. 인증이 된 사용자만이 어떤 기능을 이용할 수 있고, 사용자 인증을 통해 데이터를 조작할 수 있게끔 한다던지.. 즉, 서버는 클라이언트에게 전달받은 요청에 따라서 인증 받은 사용자인지 검사를 하고, 인증받은 사용자에게만 요청에 대한 응답을 클라이언트에게 전달할 수 있어야 한다. 이런 인증의 방법으로는 "로그인"이 있다. 로그인을 위한 버튼을 누르면 정보..

    Firebase(iOS) - Firebase Cloud Messaging(Remote Notification)

    iOS에서 *Remote Notification을 사용하기 위해 *APNs와 연결되는 서버가 필요하다. * APNs와 Remote Notification - https://clamp-coding.tistory.com/414 FCM(Firebase Cloud Messaging) APNs의 보안요건을 직접 구축하기 힘들때 쉽게 원격 알림을 보낼 수 있게 해주는 FCM이다. Remote Notification을 손쉽게 관리하고. 전송할 수 있게 도와주는 Firebase의 플랫폼이다. 원격 알림 메시지 전송기능: 사용자에게 표시되는 알림메시지를 실시간 또는 예약 전송 기능 다양한 메시지 타겟팅기능: 단일 기기, 기기 그룹, 주제를 구독한 기기에 알림을 전송하는 기능. 발송 메시지 저장, 관리기능: 알림 내용, ..

    Firebase(IOS) - 데이터 읽기 동기 처리.

    파이어 베이스의 데이터를 읽는 코드는 비동기 방식으로 처리된다. 만약 파이어베이스에서 데이터를 읽는 코드를 작성하고 바로 프린트를 해보면 값은 변경되지 않고 그대로 출력될것이다. 이런식으로 var a = 1 readfirebase() // a가 2로 변경되어야함 print(a) 출력은 1 2로 변경되어야 하는 a는 1로 출력된다. 파이어베이스의 데이터를 받아오는 코드는 비동기적으로 처리되기 때문에 데이터를 읽어온 후 2로 변경되는데 읽어 오기도 전에 프린트를 해버려서 출력이 1이 나온다. 버튼을 만들어서 출력해보면 2로 정상 출력된다. 이렇기 때문에 데이터를 읽어온 직후 그 데이터를 사용해야 한다면 원하지 않는 결과를 얻게된다. 동기처리 하는 방법 데이터 읽는 함수를 호출하는 부분 //데이터 읽기 함수를..

    Firebase(IOS) - Realtime Database데이터 읽기

    파이어베이스 실시간 데이터베이스에서 데이터를 읽어오는 방법 예제로 둘 파이어베이스의 데이터 일단 FirebaseDatabase를 import 해둔다. 1je36JAenW...뭐시기는 uid라는 변수로 대체한다. 데이터를 읽을 땐 reference객체가 필요하다. reference객체를 생성한다. //레퍼런스 객체 생성 let ref = Database.database().reference() 만약 User의 uid아래의 정보를 읽어오고 싶다면 이런 코드를 작성한다. ref.child("User").child(uid).observe(.value){snapshot in //데이터 처리 코드 작성 } ref의 헤더에서 child(User)의 child(uid)의 value값들을 snapshot으로 observ..

    IOS - Firebase A/B Testing

    A/B Testing: - 어떤것이 최적의 환경인지 테스트하는 방법. - 어떤 사용자를 테스팅 대상으로 할지, Google Analytics를 사용해서 구분짓거나 - Firebase 예측을 통해 자동으로 생성된 사용자군으로 타겟팅을 할 수 있다. - 테스팅방법: 원격구성(Remote Config 또는 알림작성기(Cloud Messaging) 활용 - 제품, 마케팅을 실험할 때 어떤것이 최적의 환경인지 데이터기반 의사결정 방법 - 이미 개발한 기능에도 테스트가 필요할 수 있다.

    IOS - Firebase Remote Config

    원격구성(Remote Config)이란? - 사용자가 업데이트를 다운로드 할 필요없이 앱의 동작과 모양을 변경할 수 있는 클라우드 서비스. - 앱 업데이트를 개시하지 않아도 하루 활성 사용자 제한없이 무료로 앱에 동작과 모양을 변경할 수 있다 - 클라우드 기반 key-value 저장소 - 원격구성을 사용할 때에는 앱의 동작과 모양을 제어하는 인앱 기본값을 만들고 이후에 설정한 기본값을 재정의하며 몇 분 내에 앱에 반영을 할 수 있다. 예) 기본값을 설정해 두고 사용자에게 배포를 했다면, firebase 원격구성의 웹 콘솔을 통해 설정해둔 프로모션텍스트 키 값을 변경할 수 있다. 별도의 앱 업데이트 없이, 심사없이, 변경할 수 있다. 앱 업데이트 없이 몇 분 내에 또는 사용자가 앱을 재실행 했을 때 바로 ..

    IOS - 심사없이 배포하기

    개발시간 자체를 제외하더라도 앱스토어에 새로운 버전의 앱을 배포하려면 애플의 심사를 거쳐야한다. 이렇게 개발을 해서 사용자에게 배포, 업데이트 되기까지 최소 24시간이 걸린다.(앱 마다 다름.) 애플은 보통 50%의 앱이 24시간, 90%는 48시간 이내에 완료된다고 한다. 또한 심사 기준에 적합하지 않은 버전에 대해서는 심사가 지연되거나 거부될 수 있다. 따라서 이렇게 시간이 걸리는 심사를 거치지 않고 디자이너, 마케터, 모두 만족시키는 결과를 만들어 낼 방법은 무엇인가. 이렇게 모든 문제를 해결해 주는것이 Firebase의 (원격구성)Remoteconfig ABTesting이다. 현업에서 Firebase의 Auth, Database가 사용되는건 드문 일이다. 하지만 remoteconfig와 ABTes..

    IOS - Firebase Realtime Database

    https://clamp-coding.tistory.com/entry/Use-Firebase-IOS IOS - Use Firebase IOS https://firebase.google.com/?hl=ko&gclid=Cj0KCQiA09eQBhCxARIsAAYRiymNr83EYzoFqic6qcPQekOxKEFrVTA7F8xGAvrmTufplie7WdWkDEUaAhkrEALw_wcB&gclsrc=aw.ds Firebase Firebase는 고품질 앱을 빠르게 개발하고 비.. clamp-coding.tistory.com 파이어베이스와 연결해준다 상단링크. 파이어 베이스의 RealtimeDatabase https://clamp-coding.tistory.com/entry/IOS-Firebase-Realtime-D..

    Firebase - Cloud Firestore

    Cloud Firestore - 실시간 데이터 베이스 이후로 나온 비교적 최근에 제공하기 시작한 플랫폼. - 실시간 데이터 베이스와 같이 비관계형 데이터 베이스로, 실시간 데이터 베이스에서 제공하는 주요 기능들을 제공한다. - Firebase에선 Realtime database와 Cloud Firestore 데이터 베이스 모델의 차이가 있고 따라서 데이터 베이스를 사용하고자 하는 앱이 어떤 특성을 가지느냐에 따라서 권장하는 데이터 베이스가 다르다고한다. - Firestore가 좀 더 복합적인 쿼리기능을 제공한다. - JSON이 아닌 문서와 컬렉션의 조합을 제공한다. - 하나의 컬렉션이 여러개의 문서를 가지고, 각각의 문서는 하위의 컬렉션을 가질 수 있는 구조. - 여러개의 필터를 서로 연결하거나 필터와 ..

    Firebase - Realtime Database

    Realtime Database(실시간 데이터 베이스) - 비관계형 클라우드 데이터베이스(No SQL Database) - 보통의 관계형 데이터베이스와 다르다. - 비관계형 데이터베이스는 대량의 데이터를 대량으로 처리하는데, 점점더 많은더 많은 데이터를수집하고 활용하는 모바일, 웹, 어플리케이션을 개발하는데 조금 더 적당하다. - JSON 기반의 데이터를 가져오고, 내보내고, 관리하는데에 최적화 되어있다. - 실시간 - HTTP요청이 아닌 동기화 방식 실시간 데이터 베이스는 옵저버와 스냅샷과 같은 SDK를 통해서 클라이언트와 직접 실시간으로 동기화 하게 된다. 따라서 실시간 데이터 베이스와 연결된 모든 기기는 거의 동시에 서버의 모든 변경 사항을 실시간으로 반영할 수 있다. - 앱이 오프라인 일 때도 사..