Cloud Firestore のAPI を、 Promiseで使う例 #firebase #noSQL #node #javascript

■ 概要:

Cloud Firestore で、Promise風の書き方のメモとなります

・get() 等の場合、ヘルプ等はコールバック的な参考コードが多く。
Promiseで、await /async で書き方ほうが、連続処理が実装しやすい面が
ありそうでしたので。調べてみました

■ 環境

firebase
firebase Cloud Firestore
node 10.16

■ 書き方の例

・通常の例
getのコールバック処理に、処理を各必要があり。

    var items = []
   this.database = firebase.firestore()
   var dbRef = this.database.collection('cms_pages')
   dbRef = dbRef.orderBy("created_at", "desc")
   dbRef.get().then(function(querySnapshot) {
       querySnapshot.forEach(function(doc) {
           var item = doc.data()
           items.push(item)            
       })
console.log( items )
   })

・await /async
async function内に、await でget()コールバック
を使用せずに実行する

    async test_get(){
       try{
           var items = []
           this.database = firebase.firestore()
           var dbRef = this.database.collection('tasks')
           dbRef = dbRef.orderBy("created_at", "desc").limit(10)
           var querySnapshot = await dbRef.get()
           querySnapshot.forEach(function(doc) {
               var item = doc.data()
               items.push(item)            
           })
// console.log(items)
           return items
       } catch (e) {
           console.error(e);
           console.error("error, test_get");
           return false
       }
   }



...

いいなと思ったら応援しよう!