FireStore 최소(CRUD)

12474 단어 FirebaseFirestore

하고 싶은 일


  • 앱 등에 구현하기 전에 로컬(Mac + node)에서 DB 조작을 확인하고 싶다.

  • 전제


  • Firebase 계정이 있습니다
  • 프로젝트를 만들고 DB (Firestore)를 만든

  • 절차



    작업할 장소 만들기


    midir fire_test
    cd fire_test
    npm init -f
    npm install --save firebase-admin
    touch index.js
    

    템플릿 파일 만들기



    index.js
    const admin = require('firebase-admin');
    
    var serviceAccount = require("./firebase-key.json"); //このファイルを管理画面から落としてくる
    
    admin.initializeApp({
        credential: admin.credential.cert(serviceAccount),
        databaseURL: "https://{project}.firebaseio.com"
    });
    
    var db = admin.firestore();
    

    key(비밀키 파일)의 입수



    관리 화면(왼쪽 창의 톱니바퀴 클릭) -> 사용자 및 권한 -> 서비스 계정

    동작 확인



    값 추가(Create)



    상기 템플릿에 추가를 위한 코드를 1행 추가.

    index.js
    const admin = require('firebase-admin');
    
    var serviceAccount = require("./firebase-key.json");
    
    admin.initializeApp({
        credential: admin.credential.cert(serviceAccount),
        databaseURL: "https://expo-test1.firebaseio.com"
    });
    
    var db = admin.firestore();
    
    //値を追加
    var docRef = db.collection('users').doc('0001').set({name:'hoge',age:33});
    

    실행 후 관리 화면에서 아래와 같이 데이터 추가를 확인할 수 있으면 OK.



    기본 동작(CRUD)



    Create(Insert)



    이미 했지만 collection과 doc을 지정한 다음 set()을 사용합니다.
    db.collection('users').doc('0001').set({name:'hoge',age:33});
    

    덧붙여서 같은 doc명으로 set()를 실행하면(자), 완전하게 덧쓰기되므로 주의가 필요합니다.
    db.collection('users').doc('0001').set({address:'tokyo',tel:'03-1111-2222'});
    

    문서에 요소(필드)를 추가하려면 Update를 사용합니다.
    존재하지 않는 필드의 경우 추가되고 기존 필드는 업데이트됩니다.
    db.collection('users').doc('0001').update({address:'tokyo',tel:'03-1111-2222'});
    

    READ(Select)



    리드는 아래와 같이 합니다.
    db.collection('users').get()
        .then((snapshot)=>{
            snapshot.forEach((doc)=>{
                console.log(doc.id + "-" + JSON.stringify(doc.data()));
            })
        })
        .catch(e => console.log(e));
    

    doc.data()의 내용이 전개되도록 JSON.stringify()하고 있습니다.

    업데이트



    update는 아래와 같은 느낌. 기존 필드라면 갱신, 없는 필드라면 추가됩니다.
    db.collection('users').doc('0001').update({ age: 44 });
    

    Delete



    삭제는 delete()를 실행할 뿐.
    db.collection('users').doc('0001').delete();
    

    덧붙여 필드를 삭제하고 싶은 경우는, 아래와 같이 합니다.
    let fieldValue = admin.firestore.FieldValue;
    db.collection('users').doc('0001').update({age:fieldValue.delete()});
    

    null로 update해도 null가 들어간 상태가 되어, 필드는 삭제되지 않습니다.

    쓰기



    또한 위와 같이 collection과 doc를 매번하지 않아도,
    let docRef = db.collection('users').doc('0001');
    

    와 같이 참조를 정의하고 참조에 대해 set,update,delete를 수행할 수 있습니다.
    docRef.set();
    docRef.update()
    docRef.delete()
    

    필요에 따라 추가합니다.

    참고


  • htps // 마도기와 0124. 하테나 bぉg. 코m/엔트리/2019/03/31/190910
  • htps : // 코 m / 바 th 치메 후 sh / ms / 164d2b0cd268f209db9b
  • 좋은 웹페이지 즐겨찾기