iT邦幫忙

0

[IONIC 4 + Firebase教學] Cloud Firestore 資料庫

Cloud Firestore 是快速、全代管、無伺服器且雲端原生的NoSQL 文件資料庫. 它不像傳統的Relation Database, 在使用上非常簡易和方便.

Collection是Document的集合,Document可以連結Collection和儲存Field. Field的Type有 String, Number, Boolean等等

在Ionic使用Firestore需要導入模組import { AngularFirestore } from '@angular/fire/firestore';

constructor(public db:AngularFirestore, ...) { }
this.db.collection('collection-name').snapshotChanges().pipe(
      map(data =>{
          return data.map(
            data=>{
              const doc = data.payload.doc.data();
              const id = data.payload.doc.id;
              return { id, doc };
            }
          );
      })
    );

以上的Code是一個得到一個Observable. 使用Map去過濾回傳的值,我只需要id和doc的值. doc即是collection所有的值.
如果我們只想得到Collection特定的值,我們可以透過id來取得

  return this.db.collection('collection-name').doc(id).valueChanges();

如果我想取得nested collection,然後規定順序, 方法如下

 return this.db.collection('collection-name').doc(id).collection('collection-name', ref => {return ref.orderBy('order')}).valueChanges();

其實Firestore提供的api很強大,跟sql一樣有很多不同的query 方法, 更多資料請參考 https://firebase.google.com/docs/firestore/query-data/get-data

我們當然也可以新増或更改 Collection和Document

//先新增一個random的id
    const id = this.db.createId();
    this.db.collection('collection-name').doc(id).set({
    //field:value
     name:name
    }).then((res)=>{
         //增新資料成功
    });

最後我們可以刪除資料

db.collection("collection-name").doc("id").delete().then(function() {
    console.log("Document successfully deleted!");
}).catch(function(error) {
    console.error("Error removing document: ", error);
});

對於只想專注在前端開發或是對於後端開發沒有經驗的人,Firebase真的是個完整方案,使用它可以開法功能完整的App.
如果有錯誤和補充,歡迎留言,謝謝!


尚未有邦友留言

立即登入留言