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
}
}
...