[Node.js] Node.js+Firebase_CRUD
본문 바로가기
BackEnd/Node.js

[Node.js] Node.js+Firebase_CRUD

by liveloper jay 2021. 12. 10.

Node.js 와 Firebase를 이용하여 push, read, update, delete 하는 과정을 포스팅하겠습니다. Firebase와 연동하지 않으신 분들은 아래 링크를 이용하여 Node.js Firebase 연동과정을 먼저 진행해주시면 됩니다.

https://liveloper-jay.tistory.com/15

 

[Nodejs] Google Firebase DB Connection

Node.js 환경에서 Firebase의 데이터베이스를 연결하고자 하는 경우 Firebase 공식 홈페이지(https://firebase.google.com) 에 접속하면 Firebase를 로컬 컴퓨터에 연결하기 위한 키 값이 제공되어있다. Firebase..

liveloper-jay.tistory.com

Push

다음은 querystring을 통해 받은 값을 데이터베이스에 저장하는 과정입니다.

// push 를 사용하면 데이터베이스의 데이터 목록에 추가하며 목록에 새 노드를 푸시할 때마다 
// 데이터베이스에서 고유 키(예: test/user//파이어베이스에서 만들어 주는 키/)를 생성한다.
// querysting을 통해 받은 값 저장
router.get('/push', function (req, res) {
    let query = req.query.name;

    database.ref('user').push({ name: query }, function (error) {
        if (error)
            console.error(error)
        else
            console.log("success save !!");
    });
    return res.json({ firebase: true });
});

 

Read

Read는 데이터베이스를 조회하는 과정이며 once와 on이 있습니다.

1. once

 once의 경우 변경을 수신 대기하지 않고 단순히 데이터의 snapshot만 필요한 경우에 사용하며 이 메소드는 한 번 호출된 후 다시 호출되지 않습니다.

router.get('/read', function (req, res) {
    database.ref('user').once('value', function (snapshot, error) {
        const data = snapshot.val();

        if (error) {
            console.error(error);
        }
        else
            console.log("success save !!");

        console.log(snapshot.val());
        return res.json(data);
    });
});


2. on

on은 해당 위치의 모든 데이터를 포함하는 스냅샷이 이벤트 콜백에 전달됩니다.

router.get('/on', function (req, res) {
    database.ref('user').on('value', function (snapshot, error) {
        const data = snapshot.val();

        if (error) {
            console.error(error);
        }
        else
            console.log("success save !!");

        console.log(data);
        return res.json(data);
    });
});

 

Update

Update는 데이터 갱신 시 사용되며 update와 set이 있습니다.

1. update

router.get('/update', function (req, res) {
    database.ref('user/-MaAS6xbNZEpAdZVny0R').update({ name: 'Asda' })

    return //res.json(data);
});


2. set

 set 을 사용하면 지정된 위치에서 하위 노드를 포함하여 모든 데이터를 덮어쓰게 됩니다.  키 값이 따로 없으며 지정된 위치에 바로 저장됩니다.

router.get('/set', function (req, res) {
    database.ref('user').set({ name: " " }, function (error) {
        if (error)
            console.error(error)
        else
            console.log("success save !!");
    });
    return res.json({ firebase: true });
});

 

 

Delete

다음은 delete를 통해 데이터베이스를 삭제하는 과정입니다.

// remove
router.get('/delete', function (req, res) {
    database.ref('user').remove(function (error) {
        if (error) {
            console.error(error);
        }
        else
            console.log("success save !!");

    });
    return res.json({ firebase: true });
});



댓글