前提・実現したいこと
Firebase Cloud FunctionsでAPIを作成する理由(メリット)がいまひとつわかりません。
今、Firebase を色々と試してみたくて Cloud Functionsを使用してFirestore内のデータを返すAPIを作成してみました。
Cloud Functionsで作成したAPIは下記の通りです。
datas
collectionの中から、特定のname
のものを返すAPIです。
Cloud FunctionsによるAPIの例
js
1app.get('/datas/:name', (req, res) => { 2 const { name } = req.params; 3 const db = admin.firestore(); 4 const datas = []; 5 6 db.collection('datas').where('name', '==', name).get() 7 .then((snapshot) => { 8 snapshot.forEach((doc) => { 9 const data = doc.data(); 10 datas.push(data); 11 }); 12 res.header('Content-Type', 'application/json; charset=utf-8'); 13 res.send({ datas }); 14 }) 15 .catch((err) => { 16 console.log(err); // eslint-disable-line no-console 17 res.send(err); 18 }); 19});
ここで思ったのですが、このような場合、Cloud FunctionsでAPIを作成せずともクライアントサイドから下記のような関数を作ることで、同じことを実現できると思います。
クライアントサイドでのデータ取得の例
js
1const fetchDatas = (name) => { 2 const db = firebase.firestore(); 3 const datas = []; 4 5 db.collection('datas').where('name', '==', name).get() 6 .then((snapshot) => { 7 snapshot.forEach((doc) => { 8 const data = doc.data(); 9 datas.push(data); 10 }); 11 }); 12 13 return datas; 14};
Cloud FunctionsのAPIはキャッシュできるようなので、クライアントサイドで実装するよりもレスポンスはよくなると思うのですが、下記リンク先にもあるように、APIが外から呼ばれ放題な問題や、クライアントサイドだけで実装するのに比べてCloud Functionsの呼び出しが発生する分、料金も発生してくる。などといった問題が発生すると思います(知識が浅いので間違っているかもしれません)。
Firebase Hosting と Cloud Function を組み合わせた時APIが外から呼ばれ放題な問題とかどうしようかなと思った話 - Qiita
以上のような理由から、Cloud Functionsを使用してFirestoreからデータを取得してくるAPIを実装することのメリットが良くわかりません。
クライアントサイドでの実装と比較して、Cloud FunctionsでAPIを実装し、情報を動的に取得してくることのメリットを教えていただきたいです。
よろしくお願い致します<(_ _)>

回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。
2018/05/28 01:30