티스토리 뷰




실시간으로 데이터 저장 및 동기화 : https://firebase.google.com/products/database/?authuser=0





JSON 데이터 실시간 동기화

Firebase 실시간 데이터베이스는 실시간으로 데이터를 저장하고 사용자 간에 동기화할 수 있는 클라우드 호스팅 NoSQL 데이터베이스입니다.


데이터베이스를 사용할 때 지금까지는 오라클, MySQL, MsSQL 같은 관계형 데이터베이스를 사용했었다.

관계형데이터베이스   - by. 위키트리

이 모델은 데이터를 컬럼(column)과 로우(row)를 이루는 하나 이상의 테이블(또는 관계)로 정리하며, 고유 키(Primary key)가 각 로우를 식별한다. 


NoSQL    - by. 위키트리

 일관성 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 제공한다. 


파이어베이스의 데이터베이스는 편리한 부분이 데이터를 넣고 나면 아래 처럼 보기 편하게 나온다.


JSON 형태로 뽑아볼 수도 있기 때문에 데이터 가공이 굉장히 편리하다.

(+)형태를 선택하면 그 아래 데이터도 볼 수 있습니다.

저장 일시도 확인 할 수 있습니다.


실제로 적용된 소스 코드를 살펴봅니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var config = {
apiKey: "본인키",
authDomain: "본인꺼",
databaseURL: "본인",
storageBucket: "본인",
messagingSenderId: "본인"
};
 
function regist(today, collect){
  firebase.database().ref('todayVisit/'+today+'/').set({
      userCollect : collect
    });
}
 
/*값을 빼보자*/
function show(today){
  firebase.database().ref('todayVisit/'+today+'/').on('value'function(e){
    var message = e.val();
    console.log(message.userCollect);
  });
}
cs






























위의 소스 예제에서 show 함수를 사용하면 값을 뽑을 수 있습니다.


아래에 기본 사용방법이 있습니다.




다음 예제에서는 데이터베이스에서 게시물의 별표 수를 검색하는 소셜 블로깅 애플리케이션을 보여 줍니다.

var starCountRef = firebase.database().ref('posts/' + postId + '/starCount');
    starCountRef
.on('value', function(snapshot) {
    updateStarCount
(postElement, snapshot.val());
});

리스너는 이벤트 발생 시점에 데이터베이스에서 지정된 위치에 있던 데이터를 포함하는 snapshot을 수신합니다. val() 메소드로 snapshot의 데이터를 검색할 수 있습니다.

데이터 한 번 읽기

변경을 수신 대기하지 않고 단순히 데이터의 스냅샷만 필요한 경우가 있습니다. 이후에 변경되지 않는 UI 요소를 초기화할 때가 그 예입니다. 이러한 경우 once() 메소드를 사용하면 시나리오가 단순해집니다. 이 메소드는 한 번 호출된 후 다시 호출되지 않습니다.

이 방법은 한 번 로드된 후 자주 변경되지 않거나 능동적으로 수신 대기할 필요가 없는 데이터에 유용합니다. 예를 들어 위 예시의 블로깅 앱에서는 사용자가 새 글을 작성하기 시작할 때 이 메소드로 사용자의 프로필을 로드합니다.

var userId = firebase.auth().currentUser.uid;
return firebase.database().ref('/users/' + userId).once('value').then(function(snapshot) {
 
var username = (snapshot.val() && snapshot.val().username) || 'Anonymous';
 
// ...
});


기본 쓰기 작업

기본 쓰기 작업의 경우 set()를 사용하여 지정된 참조에 데이터를 저장하고 기존 경로의 모든 데이터를 대체할 수 있습니다. 예를 들어 소셜 블로깅 앱은 다음과 같이 set()로 사용자를 추가할 수 있습니다.

function writeUserData(userId, name, email, imageUrl) {
  firebase
.database().ref('users/' + userId).set({
    username
: name,
    email
: email,
    profile_picture
: imageUrl
 
});
}

set()를 사용하면 지정된 위치에서 하위 노드를 포함하여 모든 데이터를 덮어씁니다.



전체 API 문서 : https://firebase.google.com/docs/database/web/read-and-write



또한 데이터 삭제 방법도 간단합니다.









반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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 31
글 보관함